提交表单时测试值是不是为数字不起作用
Posted
技术标签:
【中文标题】提交表单时测试值是不是为数字不起作用【英文标题】:testing if value is numeric is not working when submitting a form提交表单时测试值是否为数字不起作用 【发布时间】:2013-05-14 23:41:34 【问题描述】:我有一个简单的代码来在提交表单之前检查值是否为数字,但即使它不是数字值,表单也会提交
<form action="asdasd" method="POST" id="my_form" >
<input type="text" name="userphone" id="userphone" />
<br />
<input type="submit" name="register" id="register" value="register" />
</form>
js代码
$(document).ready(function()
$('#userphone').blur(function ()
var phone = $("#userphone").val();
var phonelen = phone.length;
if (!$.isNumeric(phone) || phonelen<6)
$("#userphone").css("background-color", "#ff9f9f");
return false;
else
$("#userphone").css("background-color", "#fff");
return true;
)
);
function check_user_phone()
var phone = $("#userphone").val();
var phonelen = phone.length;
if (!$.isNumeric(phone) || phonelen<6)
return false;
else
return true;
$("#my_form").submit(function()
if (!check_user_phone())
return false;
else
return true;
)
但即使电话值不是数字,表单仍在提交数据
【问题讨论】:
在我看来您想将事件处理程序附加到正在提交的表单,目前您只是将处理程序附加到失去焦点的电话号码输入。 您的代码运行良好jsfiddle.net/9Lpsw/1 @jq 初学者 onsubmit , js fiddle 不支持 onblur @jq 初学者你的代码工作正常。 代码已更新,请查看 【参考方案1】:尝试将 JSFiddle 选项从 onLoad
更改为 No wrap - in <head>
JSFiddle:-http://jsfiddle.net/adiioo7/wfpbV/5/
JS
jQuery(function()
$("#reg").submit(function(e)
if(!check_phone() )
e.preventDefault();
);
);
【讨论】:
我猜表单正在提交,即使数据不是数字。页面加载 @jqbeginner - 不,不是,在浏览器控制台(chrome/FF)中检查。以上是关于提交表单时测试值是不是为数字不起作用的主要内容,如果未能解决你的问题,请参考以下文章
当表单出现错误时,带有 angular.js 表单提交的 Django 不起作用
引导验证(成功)后,表单使用默认方法而不是 ajax 提交。 e.preventDefault() 不起作用?
专注于下一个输入不起作用以及当用户在最后一个输入字段时如何提交表单