你有一个包含几个字段的表单。其中包括:
<div>
<label for="phoneNumber" class="label">Phone Number</label>
<input name="phoneNumber" type="text" id="phoneNumber" size="13" style="float:left;margin-right:10px;">
</div>
<div>
<input type="checkbox" name="activePN" id="activePN" checked >
<label for="activePN">Active</label>
</div>
当表单被提交时,我想验证输入并在每个字段旁边写入,以确定哪个字段没有验证。像这样:
$('#submit').click(function () {
var proceed = true;
var strippedPN = $('#phoneNumber').val().replace(/[^\d\.]/g, '').toString(); //strips non-digits from the string
if (strippedPN.length !== 10) {
$('#phoneNumber').text('<p>Phone number has to be 10 digits long.</p>')
proceed = false;
}
...
...
...
});
我正在跳跃,添加那些<p> </p>
标签就可以了。但他们不......
注意:我还尝试使用html()
代替text()
和activePN
代替phoneNumber
。
答案 0 :(得分:13)
使用.after()
。
$('#phoneNumber').after('<p>Phone number has to be 10 digits long.</p>')
将类添加到p
标记可能也是明智之举,因此您可以在编辑数字时将其删除。
答案 1 :(得分:2)
尝试:
$('#submit').click(function(){
var proceed = true;
var strippedPN = $('#phoneNumber').val().replace(/[^\d\.]/g, ''); //strips non-digits from the string - already a String
if(strippedPN.length !== 10){
$('#phoneNumber').after('<p>Phone number has to be 10 digits long.</p>')
proceed = false;
}
}
答案 2 :(得分:0)
最好使用jqueryvalidation插件。
但是在某些情况下,您可能需要使用自定义代码显示验证消息,那么下面的内容可能会有所帮助。
代码
var errorSeen = false;
$('#txtname').keyup(function (e) {
var validInput = false; // TODO set your validation here
if (!validInput) {
var errorMessageVisible = $(".validationMessage").is(":visible");
if (errorSeen === false && errorMessageVisible === false) {
$('#txtname').style.borderColor = "red";
$('#txtname').after("<span class='validationMessage' style='color:red;'>
Name is required.</span>");
errorSeen = true;
}
}
else {
$('#txtname').style.borderColor = "";
var errorMessageVisible = $(".validationMessage").is(":visible");
if (errorMessageVisible)
$(".validationMessage").remove();
errorSeen = false;
}
});