无法使用 CasperJS 触发选项更改
Can't trigger change on option with CasperJS
我有这个html:
<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=""
有什么办法可以解决吗?
您应该设置 select
元素的值并在其上触发 change
事件:
$('#form_maker_id').val(valueOptionSelect).change();
我有这个html:
<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=""
有什么办法可以解决吗?
您应该设置 select
元素的值并在其上触发 change
事件:
$('#form_maker_id').val(valueOptionSelect).change();