无法使用 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();