我已经遇到这种情况很多次了(我不想在这里使用‘输入类型按钮’),为什么'onclick‘不调用函数check();?即使字段为空,页面仍会提交。感谢您的评论。
Javascript:
function check() {
var name = document.getElementById('username_res');
var passw_old = document.getElementById('passw_reset_old');
var passw_new = document.getElementById('passw_reset');
var button_res = document.getElementById('sub_res');
if ((name.val() == "") && (passw_old.val().length == "") && (passw_new.val().length == "")) {
button_res.disabled = true;
} else {
button_res.disabled = false;
}
}
HTML:
<form id="passw_res" name="passw_res" method="post" action="pass_reset.php">
<fieldset style="width:300px"><br/>
<legend id="pass_legend" align="left">Password reset</legend><br/>
<input type="text" id="username_res" name="username_res" maxlength="50" />
<input type="password" id="passw_reset_old" name="passw_reset_old" maxlength="16"/>
<input type="password" id="passw_reset" name="passw_reset" maxlength="16" />
<input type="submit" value="submit" id="sub_res" name="sub_res" onclick="check();"/>
</fieldset>
</form>
So...the页面不应该在空域中提交--它为什么要提交?谢谢..
发布于 2011-09-18 21:09:48
将您的函数更改为:
function check() {
var name = document.getElementById('username_res').value;
var passw_old = document.getElementById('passw_reset_old').value;
var passw_new = document.getElementById('passw_reset').value;
return ((name != '') && (passw_old != '') && (passw_new != ''));
}
实际上,您不必将onclick事件更改为onsubmit,只需将其更改为onclick="return check();"
即可。您需要向onclick事件返回false,以防止其被触发。
您可能希望添加一些视觉增强功能,以指明表单未提交的原因。否则它会让访问者感到困惑。
发布于 2011-09-18 21:11:13
您正在尝试调用标准javascript变量上的jquery方法。
试试这个吧
if ((name.value == "") && (passw_old.value == "") && (passw_new.value == "")) {
return false;
} else {
return true;
}
并且你的提交按钮应该是
<input type="submit" value="submit" id="sub_res" name="sub_res" onclick="return check();"/>
发布于 2011-09-18 21:09:20
您需要将按钮类型从type=" submit“更改为type=" button”,然后在check()函数中,如果一切都通过,则需要获取表单对象并提交它。
所以类似于document.getElementById('formID').submit()
https://stackoverflow.com/questions/7464478
复制