这种方式工作的时间太长了......但似乎无法确定问题所在。已经阅读了有关stackoverflow和其他地方的数十篇文章。
当我点击并更改该值时,它不会自动提交:
<form id="orderbyfrm" name="orderbyfrm" action="http://staging.whiterabbitexpress.com/" method="post" class="orderbyfrm">
<input name="s" value="<?php echo $wre_search_txt?>" type="hidden">
<label for="orderby" class="sortByLabel">Sort by </label>
<select class="sortByDropdown" name="orderby" id="orderby" onchange="this.form.submit();">
<option value="Relevance">Relevance</option>
<option value="likes" selected="selected">Likes</option>
<option value="comments" selected="comments">Comments</option>
</select>
</form>
Chrome检查器中的我看到一个错误 “未捕获的TypeError:无法调用方法'提交'的null”onchange
我也试过onchange =“javascript:document.orderbyfrm.submit”,但这也不起作用。
答案 0 :(得分:6)
可能你在某处有一个名为form
或submit
的元素或JS对象,与真实形式相冲突。
最安全的方法是使用document.getElementById:
<select onchange="SubmitForm('orderbyfrm');">
JavaScript:
function SubmitForm(formId) {
var oForm = document.getElementById(formId);
if (oForm) {
oForm.submit();
}
else {
alert("DEBUG - could not find element " + formId);
}
}
使用旧的警报进行进一步调试..而不是alert("DEBUG ...
有这个:
var sDebugInfo = "found " + document.forms.length + " forms: \n";
for (var i = 0; i < document.forms.length; i++) {
var curForm = document.forms[i];
sDebugInfo += "name: " + curForm.name + ", id: " + curForm.id;
sDebugInfo += "\n";
}
alert(sDebugInfo);
根据您的要求,调试应该继续。
答案 1 :(得分:0)
<div id="orderby" class="orderby
<form id="xxx" name="xxx" action="#" method="post" class="orderbyfrm">
固定:
非常感谢大家的帮助!