alert()
工作正常,但return false
不会停止发布表单 - 有任何想法吗?
<script type="text/javascript">
function form_val() {
//Check date
var email=document.getElementById('email').value;
var passw=document.getElementById('password').value;
if(email==''||email==null||passw==''||passw==null) {
alert('Please fill in both fields.');
return false;
}
}
</script>
<form action="userlogin.html" method="post" name="log_form" onsubmit="return form_val();">
<div data-role="fieldcontain">
<input type="email" name="email" id="email" value="" placeholder="Email Address" />
<input type="password" name="password" id="password" value="" placeholder="Password" />
<div class="ui-grid-a">
<div class="ui-block-a">
<button type="submit" name="login" value="" data-theme="c">Sign In</button>
</div>
<div class="ui-block-b">
<br />
<a href="http://mobile.*****.com/lostpswd.html" rel="external" style="font-size:10px; padding-left:10px;">Forgotten Password?</a>
</div>
</div>
</form>
答案 0 :(得分:2)
您已标记了问题jquery-mobile
,但您没有在引用代码中的任何位置使用jQuery。
代码以旧式DOM0的方式显示(这是好的,除了issues with getElementById
on IE7 and earlier之外仍然可以工作)。我稍后更改form_val
中的支票:
function form_val(){
//Check date
var email=document.getElementById('email').value;
var passw=document.getElementById('password').value;
if(!email || !passw) {
alert('Please fill in both fields.');
return false;
}
}
...但是您可能应该使用上面列出的IE问题或者未显示的代码中的页面上的其他脚本错误。
以上是你如何使用jQuery(它自动解决你的IE bug):
jQuery(function($) {
$("form[name='log_form']").submit(form_val);
});
function form_val() {
if (!$("#email").val() || !$("#password").val()) {
alert('Please fill in both fields.');
return false;
}
}
...或者如果您不需要form_val
是全局的(尽可能避免使用全局函数,并且只需验证此表单就不需要全局函数):
jQuery(function($) {
$("form[name='log_form']").submit(form_val);
function form_val() {
if (!$("#email").val() || !$("#password").val()) {
alert('Please fill in both fields.');
return false;
}
}
});
答案 1 :(得分:0)
您可以使用常规的“按钮”类型而不是“提交”。然后调用您的JavaScript onclick以验证并提交表单。