Tampermonkey select a dropdown value with name

馋奶兔 提交于 2019-11-28 12:03:06

问题


I want Tampermonkey to change a select drop down to a specific country. The HTML is formatted like;

  <label>Country</label>
    <span class="select_wrapper">
      <select name="shipping_country_id">
        <option value="46">Afghanistan</option>
        <option value="47">Albania</option>
        <option value="42">United Kingdom</option>
        <option value="43" selected="">United States</option>
      </select>
      <span class="value">United States</span>
    </span>

I have tried;

("select[name='shipping_country_id'] option[value='42']", clickNode, true);

and

 (document.querySelector && document.querySelector('select[name="shipping_country_id"]') || []).value = '42';

After reading Tampermonkey to select a dropdown value. It has no ID or name, just a class? I tried using the same method used in that answer;

    waitForKeyElements ("shipping_country_id:has(option[value='42'])", selectCountryDropdown);

function selectCountryDropdown (jNode) {
var evt = new Event ("click");
jNode[0].dispatchEvent (evt);

jNode.val('42');

evt = new Event ("change");
jNode[0].dispatchEvent (evt);
}

Am I missing something or trying the wrong thing?


回答1:


I got this to work by using a similar method to the last posted in the question, was just a syntax error.

waitForKeyElements ("select[name=shipping_country_id]:has(option[value=42])", selectCountryDropdown);


function selectCountryDropdown (jNode) {
var evt = new Event ("click");
jNode[0].dispatchEvent (evt);

jNode.val('42');

evt = new Event ("change");
jNode[0].dispatchEvent (evt);
}


来源:https://stackoverflow.com/questions/47704320/tampermonkey-select-a-dropdown-value-with-name

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!