我有一个表单,其中的操作作为网址之间的选择选项。代码如下:
<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/