我有一个#error段落。每次提交表单中都有错误。输入占位符文本将添加到#error段落中。
我的问题:
每次用户点击提交时都会发生这种情况。所以#error消息返回:
请先填写你的名字,姓氏,公司,职位 姓名,姓氏,公司,职位,名字,姓氏,公司, 职位,名字,姓氏,公司,职位,名字,姓氏 姓名,公司,职位,名字,姓氏,公司,职位,
我已经寻找其他解决方案并试过了:
if (input.attr('placeholder').indexOf($('#error')) >= 0){
} else{
$('#error').append(input.attr('placeholder').toLowerCase() + ', ');
}
有没有办法检查#error消息中是否已存在占位符文本? Here's a fiddle。对不起它真是令人费解。但它是我一直在努力的东西,并把它放在手边。
提前感谢您的帮助!
答案 0 :(得分:2)
var errorText = '';
//Validate required fields
for (i = 0; i < required.length; i++) {
var input = $('#' + required[i]);
if ((input.val() == "") || (input.val() == emptyerror)) {
input.addClass("tobefixed");
errornotice.fadeIn(750);
if (input.attr('placeholder').indexOf($('#error')) >= 0) {
// do nothing
} else {
errorText = errorText + $(input).attr('placeholder').toLowerCase() + ', ';
}
input.val(emptyerror);
errornotice.fadeIn(750);
} else {
input.removeClass("tobefixed");
}
}
$('#error').html('').append('Please fill in your ' + errorText);
答案 1 :(得分:0)
我简单地在你的小提琴中添加一行,它现在正在工作:
required = ["id_first_name", "id_last_name", "id_firmbox", "id_job_title"];
errornotice = $("#error");
emptyerror = "Please fill out this field.";
$("#startform").submit(function(){
//Validate required fields
$("#error").html("Please fill in your");
for (i=0;i<required.length;i++) {
var input = $('#'+required[i]);
if ((input.val() == "") || (input.val() == emptyerror)) {
input.addClass("tobefixed");
errornotice.fadeIn(750);
// =====Here===== //
if (input.attr('placeholder').indexOf($('#error')) >= 0){
} else{
$('#error').append(input.attr('placeholder').toLowerCase() + ', ');
}
// ============== //
input.val(emptyerror);
errornotice.fadeIn(750);
} else {
input.removeClass("tobefixed");
}
}
if ($(":input").hasClass("tobefixed")) {
return false;
} else {
errornotice.hide();
return true;
}
});
$(":input").focus(function(){
if ($(this).hasClass("tobefixed") ) {
$(this).val("");
$(this).removeClass("tobefixed");
}
});
这一行做了所有技巧:
$("#error").html("Please fill in your");
Saludos;)
答案 2 :(得分:0)
如果您想检查#error
是否包含您想知道的字符串,可以使用
($('#error').text().indexOf(a_string)) != -1
如果#error
包含a_string
,则会返回true。
关于搜索其他字符串in this question.
的字符串的讨论时间较长答案 3 :(得分:0)
看起来你正在以错误的方式进行(并且忘记从#error
元素中取出text
):
if ( $('#error').text().indexOf( input.attr('placeholder') ) >= 0)