AJAX数据
{"status":"error","code":"mailList","email":["hello@world.com"]}
// data from ajax request
var myData = JSON.parse(data);
// check if emails exists
for (var i = 0; i < myData.email.length; i++) {
// find the fields with matching value
$('#finalForm').find('input').each(function() {
if( $(this).val() == myData.email[i] ) {
$(this).css('border', '1px solid #E33244');
$(this).after('<span class="errMsg">Oops! You have already referred this email. Please use a different email.</span>');
}
});
}
在上面的代码中,是否有任何替代代码可以找到input fields with matching value
。由于此部分代码未在Mac OS上的Firefox 29上执行。非常感谢您的帮助。感谢。
答案 0 :(得分:0)
如果您只想检查textbox
个值,则可以过滤选择器以仅检查文本框。
for (var i = 0; i < myData.email.length; i++) {
// find the fields with matching value
$('#finalForm').find('input[type="text"]').each(function() {
var elem = $(this);
if( elem.val() == myData.email[i]) {
elem.css('border', '1px solid #E33244').after('<span class="errMsg">Oops! You have already referred this email. Please use a different email.</span>');
}
});
}
请检查myData.email.length
和myData.email[i]
的结果,以获得更清晰的图片。
答案 1 :(得分:0)
试试这段代码:
// data from ajax request
var myData = JSON.parse(data);
// check if emails exists
for (var i = 0; i < myData.email.length; i++) {
var elements = document.forms['fForm'].elements;
// find the fields with matching value
for(var j in elements){
if(elements[j].value == myData.email[i] ) {
elements[j].style.border = '1px solid #E33244';
$(elements[j]).after('<span class="errMsg">Oops! You have already referred this email. Please use a different email.</span>');
}
}
}
答案 2 :(得分:0)
如下:
var formEmails = finalForm.find("input[type='text']").each(function () {
var el = $(this); // cache it
if(myData.email.indexOf(el.val()) > -1) {
// whatever css stuff you wanna do when a dupe
el.css("border-color", "red");
// stop checking further if that's your requirement
e.preventDefault();
return;
}
});
查看此fiddle以查看其实际效果。我希望我没有误解你。