我正在进行一些表单验证,并且我有一个textarea,其中包含一个初始占位符,我正在尝试检查用户是否在textarea中输入了任何数据。
如果我使用jquery .text()
检查,它看不到在浏览器级别添加的文本,如果我使用.val()
,则首先不会更新任何内容。那么在提交表单之前进行此检查的正确方法是什么?
<div>
<textarea class="myUserText"></textarea>
</div>
function validateForm(){
if($('.myUserText').text()==""){
//do something here
}
}
答案 0 :(得分:1)
如果我使用.val(),那么首先不会更新任何内容。那么在提交表单之前进行此检查的正确方法是什么?
val
是正确的检查对象,如果用户在textarea中输入内容,则为!= ""
。
当然,他们输入的东西可能只是一个新行,可能不是你想要的。所以你可能会考虑:
if($('.myUserText').val().replace(/^\s+/, "") === "")
...忽略了前导空格。
答案 1 :(得分:1)
.val()
应该有效。抓住提交事件:
$('form').submit(function(e) {
if (!$('.myUserText').val() == '') {
e.preventDefault();
// The form won't submit
}
});
答案 2 :(得分:0)
...或者如果您有兴趣使用一些最新的HTML5选项:
对各种输入字段使用表单验证(例如电子邮件,网址,请求:http://bit.ly/Z8ZEHe
使用modernizr检查访问者的浏览器是否支持HTML5表单,如果它没有加载后备polyfill:
http://modernizr.com
https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills