我正在尝试验证表单,但没有标签,同一输入中的所有消息。
我的html可以按照我的意愿运行,但是使用jQuery我遇到了elseif和其他问题。
我想说:
- 如果输入名称仍为名称,则表示消息名称丢失(这似乎有效)
- 如果输入地址仍然是地址,则消息地址丢失(不起作用)
- 如果输入地址和输入名称不是地址或名称提交表格(它不起作用)
我在这里有一个例子:http://jsfiddle.net/4ervc/20/
HTML:
<form id="form" action="#">
<input type="text" name="name" id="name" value="name"
onfocus="if (this.value=='name'||'name is missing') this.value = '';"
onblur="if (this.value=='') this.value = 'name';" />
<br />
<input type="text" name="address" id="address" value="address"
onfocus="if (this.value=='address'||'address is missing') this.value = '';"
onblur="if (this.value=='') this.value = 'address';" />
<br />
<input type="submit" name="submit" id="submit">
</form>
JQUERY:
$(function(){
$("#form").submit(function (e) {
if ($('#name').val("name")) {
e.preventDefault();
$('#name').val("name is missing");
}else if ($('#address').val("address")) {
e.preventDefault();
$('#address').val("address is missing");
}else{
$("#form").submit;
}
});
})
答案 0 :(得分:1)
您正在设置值“name”
尝试使用它:
$('#name')。val()==“name”
在你的内部if语句
答案 1 :(得分:0)
原始代码存在一些问题:
$("#form").submit;
不正确,应为$("#form").submit();
$('#name').val() === 'name'
而不是$('#name').val('name')
下面通过使用一个简单的标志来修复这些事情,并分别检查每个字段。提交电话也是固定的。
试试这个:http://jsfiddle.net/4ervc/21/
$(function() {
$("#form").submit(function(e) {
//assume valid form
var valid = true;
if ($('#name').val() === 'name') {
e.preventDefault();
$('#name').val('name is missing');
valid = false;
}
if ($('#address').val() === 'address') {
e.preventDefault();
$('#address').val('address is missing');
valid = false;
}
if (valid) {
$('#form').submit();
}
});
});
另外 - 只是关于代码气味的注释 - 您应该尝试通过脚本一致地使用单引号或双引号。你已经使用了一些不理想的东西(但会起作用)。