我有一个带有操作的表单作为网址之间的选择选项。代码如下:
<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和谷歌浏览器上都尝试了它
答案 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。