php jquery,验证远程,数组

时间:2012-10-02 07:42:51

标签: validation jquery jquery-validate

运行以下代码时遇到一些问题:js:

 $(document).ready(function(){
$.validator.addMethod("name", function(value, element) {
    return $("#identiPIC_selected_0").val() !== '' &&    $("#identiPIC_selected_1").val() !== '' ;
}, "Required!");

$("#signin").validate({
    groups:{
         name : 'identiPIC_selected[]'  
    },
    rules: {
        'identiPIC_selected[]': {
            required: true,
            remote: { 
                url:"check3.php",
                type:"post",
                cache: false,
                async:false,
                data: {
                    'identiPIC_selected[0]': function() {
                        return $.trim($("#identiPIC_selected_0").val());
                    },
                    'identiPIC_selected[1]': function() {
                        return $.trim($("#identiPIC_selected_1").val());
                    }
                }
            }
        }
    }
});

});

php是以下内容:

<?php
 $captcha = $_POST['identiPIC_selected'];
$identiPIC[0] = "Apple";
$identiPIC[1] = "Flower";
 if($captcha === $identiPIC){
    echo "true";
 } else {
    echo "false";
 }

?>

和html:

<form id="signin" action="check3.php" method="POST">
<select id="identiPIC_selected_0" name="identiPIC_selected[]">
<option value="">Click to identify</option>
<option>Apple</option>
<option>Cat</option>
<option>Clock</option>
<option>Flower</option>
<option>Fork</option>
</select>
<select id="identiPIC_selected_1" name="identiPIC_selected[]">
<option value="">Click to identify</option>
<option>Apple</option>
<option>Cat</option>
<option>Clock</option>
<option>Flower</option>
<option>Fork</option>
</select>
<input type="submit" id="save" name="save" value="Save"/>
</form>

此代码适用时,除非用户选择错误的第二个“选择”选项,按提交然后修复他的错误然后按下提交它不再提交,所以我的意思是例如:

用户选择:Apple + Cat并单击“保存”按钮,显示错误, 用户解决了问题:Apple + Flower并点击“保存”按钮,它没有提交,即使所有选择都很好。

我补充说:

$("#identiPIC_selected_0").change(function () {
    $("#identiPIC_selected_0").removeData("previousValue");
});
$("#identiPIC_selected_1").change(function () {
   $("#identiPIC_selected_1").removeData("previousValue");
});

但它似乎没有为我做任何事情。 任何想法? 感谢!!!

1 个答案:

答案 0 :(得分:0)

好吧......经过不同的尝试,我认为我找到了解决方案,这似乎有效:

   $('#signin').submit(function(){
    $("#identiPIC_selected_0").removeData('previousValue');
    $("#identiPIC_selected_1").removeData('previousValue');
})