javascript - 默认选择选项

标签 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 而不是 website/url1/?cat=9&q=string

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

我希望我已经说清楚了。显然所选选项不起作用,我在 Firefox 和 google chrome 上都尝试过

最佳答案

您只是忘记了第二个选项的 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>

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

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();

关于javascript - 默认选择选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34873992/

相关文章:

javascript - 为什么我的 React Accordion 动画不起作用?

javascript - 谷歌地图 div 区域中仅显示带有缩放控制的白色

jquery - 向下滚动时隐藏导航栏并在用户使用 jquery 向上滚动页面时显示它,效果不佳

html - 为什么匹配运算符不匹配任何东西?

javascript - 我如何在 .hbl 中编写下拉菜单?

javascript - 如何使用对象初始值设定项来验证表单?

javascript - TypeError : exits. 成功不是函数

javascript - 从远程 html 页面中指定的 javascript 调用 objective-c 方法

PHP preg_replace 带有空白空间的 html 注释

html - 如何水平对齐3个div和中间div的一个div底部