默认选择选项

时间:2016-01-19 10:12:31

标签: javascript html

我有一个带有操作的表单作为网址之间的选择选项。代码如下:

<form id = "idForm"
      name "Formname"
      action=""
      method ="GET">
 <select type="hidden" name ="cat" onChange="changeAction(this)">
      <option value="0" selected="selected"  search-url = "url1"> URL1 </option>
      <option value="1" search-url = "url2> URL2 </option>
 </select>

和脚本:

function changeAction(obj) {
        var url = obj.options[obj.selectedIndex].getAttribute('search-url');
        document.FormName.action = url; 
    }

更改操作正常,我的问题是,当我第一次进入页面时,默认网址不是URL1,当我输入查询字符串并提交时,网址如下:

website/?cat=0&q=string and not website/url1/?cat=9&q=string

在我在两个选项之间切换之后,两个选项的url格式正确。

我希望我已经清楚了。显然所选的选项不起作用,我在firefox和谷歌浏览器上都尝试了它

2 个答案:

答案 0 :(得分:1)

你只是忘了第二个选项的search-url属性的双引号。

<form id = "idForm"
      name "Formname"
      action=""
      method ="GET">
 <select id="myselect" type="hidden" name ="cat" onChange="changeAction(this)">
      <option value="0" selected="selected"  search-url = "url1"> URL1 </option>
      <option value="1" search-url = "url2"> URL2 </option>
 </select>

如果您在第一次通话时遇到问题,我的意思是,当您第一次打开网站时,应该实施ìnitialize方法或类似的方法。

function changeAction(obj) {
    var url = obj.options[obj.selectedIndex].getAttribute('search-url');
    document.FormName.action = url; 
}

function init(){

    var e = document.getElementById("myselect");

    // you could do this way....
    var str_select = e.options[e.selectedIndex].getAttribute('search-url');
    document.FormName.action = str_select;

   // ... or even simpler
   changeAction(e);


}
init();

答案 1 :(得分:0)

动作将设置为更改。您需要在页面加载时触发事件以选择Url1,以便调用changeAction()并将操作设置为Url1。