0
<form action="db.php" method="POST" id="addForm" name="addForm">
<input type="checkbox" name="use[]" value="development">Develop<br>
<input type="checkbox" name="use[]" value="sample">Sample<br>
<input type="checkbox" name="use[]" value="mass_production">Mass Prod<br>
</form>

最初に片付けるために..
1.送信すると、変数を使用してphpで投稿値を取得できます$_POST['use']よね?
2. 複数のチェックボックスであるため、値 $_POST['use'] は配列なので、 でアクセスする必要があります$_POST['use'][0]$_POST['use'][1]ね ?

本当の問題は、送信時にコンソール (firebug) でエラーが発生したことです。 Error: Syntax error, unrecognized expression: [name=use[]]、 とthrow new Error( "Syntax error, unrecognized expression: " + msg );

エラーにより送信できません。jquery-1.8.2.js を使用しています。私が間違っていることはありますか?

更新
以下のこれらのコードはエラーを作成しました。しかし、まだ理解できていません。

var jdialog = $('#addnew_dialog');
var jform = jdialog.find('[name=addForm]');
jform.validate({
    errorClass : "err_label",
    wrapper: "li",
    rules: {
        "code": "required",
        "name": "required"
    },
    ignore: "",
    errorPlacement: function(error, element) {
        if( element.next().hasClass('ui-multiselect') ) {
            error.insertAfter( element.next() );
        } else {
            error.insertAfter( element );
        }
    },
    submitHandler: function(form) {
        //use ajax check
        //reset all error state
        $.each($(form).serializeArray(), function() {             
      jform.find("[name="+this.name+"]").removeClass("ui-state-error");
    });

        var data = ajaxCheck("addForm", "ajaxCheckAddShape");
        if(data['result']!="ok"){
            updateTips(data['msg']);
            $.each(data['err_fields'], function(index, value) {
                jform.find("[name="+value+"]").addClass("ui-state-error");
            });
            return false;
        }
        $(form).find("[name=op]").val("add");
        form.submit();
    }
});


function ajaxCheck(formName , action) {
    var jform = $("#"+formName);
    jform.find("[name=op]").val(action);
  var returnData = $.ajax({
    type: "POST",
    url: "db.php",
    async: false,
    timeout: 5000,
    data: jform.serialize(),
    dataType : "json"
  }).responseText;
  return $.parseJSON(returnData);
}
4

1 に答える 1

2

[jQuery属性セレクターで、またはのような文字がある場合は引用符を付ける必要があります]

たとえば、置き換えます

$('[name=use[]]')

$('[name="use[]"]')
于 2012-12-12T09:10:18.097 に答える