对于我的生活,我无法弄清楚我做错了什么,我有一个带有单选按钮和文本框的基本表单。我正在尝试执行基本验证,所以如果我将来添加文本区域或选择框,它将使用 if($ this).val()==='')进行验证非常适合那些,但为什么不是我的收音机键?当我尝试提醒长度时,我只收到一条警报信息,而不是两条?任何帮助是极大的赞赏! JS小提琴链接http://jsfiddle.net/5Sacj/
<div class="two-column">
<label id="gender" for="gender">Gender</label>
<input type="radio" name="customer" value="male" />Male
<input type="radio" name="customer" value="female" />Female
</div>
<div class="two-column">
<label for="fname">*First Name</label>
<input type="text" class="text" id="fname" name="fname" />
</div>
JQUERY
$(document).ready(function() {
$(":text, :radio").each(function() {
if($(this).val() === "")
alert($(this).length);
});
});
答案 0 :(得分:3)
这适用于文本框和单选按钮。
$(":text, :radio").each(function() {
if($(this).val() === "" || !$(this).is(':checked'))
alert($(this).length);
});
如果您希望它适用于textareas和所有类型的输入,请将您的选择器更改为:
$("input, textarea").each(function() {
// same code
});
答案 1 :(得分:0)
因为已经设置了两个无线电项目的值。
<input type="radio" name="customer" value="male" />Male
<input type="radio" name="customer" value="female" />Female
如果您将JS更改为
$(document).ready(function() {
$(":text, :radio").each(function() {
alert($(this).length);
});
});
$(":text, :radio").each(function() {
alert($(this).length);
});
});
你会得到三个弹出窗口。