表单中的重复输入

时间:2012-03-07 03:42:30

标签: jquery

我有一个动态生成的表单,其中包含多个文本输入字段:

<input class="w200" type="text" value="" name="field[7018]">
<input class="w200" type="text" value="" name="field[7019]">
<input class="w200" type="text" value="" name="field[7020]">
...
<input class="w200" type="text" value="" name="field[7055]">

使用jQuery,如何在输入中检测重复值?

post on SO提出以下解决方案:

$("#check").click(function() {
    $.post("checkname.php", 
           { name : $("#textboxname").val() },
           function(data) {
             //data will contain the output from the file `checkname.php`
             if(data=="ok") { //imagine the case it output ok if not duplicate is found
                alert('ok');
             else { 
                alert('duplicate name exists');
             }
    );
});

如果一次使用输入一个值,它就有效。但是,如果用户打开具有预填充值的表单,则进行编辑。我如何检查重复项呢?

1 个答案:

答案 0 :(得分:0)

如果您要求如何检查页面上现有输入元素的重复值,请执行以下操作:

$("input[type='text']").change( function() {
    // check input ($(this).val()) for validity here
    var valueOfChangedInput = $(this).val();
    var timeRepeated = 0;
    $("input[type='text']").each(function () {
        //Inside each() check the 'valueOfChangedInput' with all other existing input
        if ($(this).val() == valueOfChangedInput ) {
            timeRepeated++; //this will be executed at least 1 time because of the input, which is changed just now
        }
    });

    if(timeRepeated > 1) {
        alert("Duplicate value found !");
    }
    else {
        alert("No Duplicates !");
    }
});