2016-12-07 10 views
1

У меня есть этот HTML:Не может вызвать изменения на вариант с CasperJS

<select class="ik-target" name="make_id" id="the_maker_id" data-ik-class="maker-select"> 
<option value="" class="empty-item">Choose maker</option> 
<optgroup label="Some of them"> 
    ... 
</optgroup> 
<optgroup label="Chosen"> 
    <option value="2" style="text-indent: 10px;">A</option> 
    <option value="5" style="text-indent: 10px;">B</option> 
    <option value="16" style="text-indent: 10px;">C</option> 
    <option value="819" style="text-indent: 10px;">D</option> 
</optgroup> 
</select> 

Я тогда попробовать это (который обычно работает):

var thisnow = "5"; 
this.evaluate(function(valueOptionSelect){ 
    $('select#form_maker_id optgroup[label="Chosen"] option').val(valueOptionSelect); 
    $('select#form_maker_id optgroup[label="Chosen"] option').trigger("change"); 
},thisnow); 

Но это не изменяет значение параметра из по умолчанию value=""

Любые идеи, как я могу это исправить?

+0

Во-первых, вы должны вызвать '' change' на select', а не 'option' (s). А во-вторых, то же самое для '.val()' –

+0

@ A.Wolff вот так? '$ ('select # form_maker_id optgroup [label =" Chosen "]')'? Не работает:/ – user1665355

+0

Нет, я имел в виду, например: '$ ('# form_maker_id'). Val (valueOptionSelect);' и '$ ('# form_maker_id'). Trigger ('change');' и btw это может быть цепочка : '$ ('# form_maker_id'). val (valueOptionSelect) .change();' –

ответ

1

Вы должны установить значение select элемента и вызвать change событие на нем тоже:

$('#form_maker_id').val(valueOptionSelect).change(); 

 Смежные вопросы

  • Нет связанных вопросов^_^