0

すべてのブラウザで「 jQuery SyntaxError: missing : after property id 」というエラーが表示され、修正方法がわかりません。コードを lint で実行したところ、同じエラーが発生しました。問題のある行は、コード内の次のとおりです。

$('#BA_boxform input:submit').on('click', function () {

私は jquery/js を初めて使用するので、どこが間違っているのか教えていただければ幸いです。ありがとう

jqueryコード

// function to connect to php and process form values

$(function(){
        $("#BA_boxform").validate({
        rules: {
            name: { required: true },
            lname: { required: true }
        },
        messages: {
            name: { required: "* required" },
            lname: { required: "* required" }
        },
        $('#BA_boxform input:submit').on('click', function () {

        var formdata = $('#BA_boxform').serialize() + '&submit=' + $(this).val();

         //alert(formdata);
         $.ajax({
           type: "POST",
           url: "/sample/admin/requests/boxes/boxesadd.php",
           data: formdata,
           dataType: 'json',
           success: function(msg){
               if(typeof msg.boxerrortext !== "undefined" && msg.boxerrortext == "You need to input a box")
                   {
                     $("#BA_addbox").html(msg.boxerrortext);
                   }
               else
                   {
                     $("#BA_addbox").html("You have successfully added box " + msg.box + " to the archive.");
                   }
               //$("#confirm_department").hide();

               /*
               var $dialog = $('<div id="dialog"></div>')
               .html('Your intake was successfully submitted and will be viewable in the reporting area.<br /><br />Thank you.');
               $dialog.dialog({
               autoOpen: true,
               modal: true,
               title: 'Box intake submission successfull',
               width: 400,
               height: 200,
               draggable: false,
               resizable: false,
               buttons: {
               Close: function() {
               $( this ).dialog( "close" );
               }
               }
               });
               */
               //alert(msg);
               //console.log(msg);
               //$("#BA_addbox").html(msg.box);

               //$("#formImage .col_1 li").show();
               //$("#BA_boxform").get(0).reset();
               //$("#boxaddform").hide();
          }
       });
         return false;
     });
   });
});

// end php processing
// End function to submit box intake form
4

4 に答える 4

2

問題は、問題のあるコード行に変数名がないことです。その関数は、「オプション」またはプロパティのリストのカンマの後に渡されています。そのメソッドがイベントハンドラーとして渡されることになっている場合は、次のようにする必要があります。

// PHP に接続してフォームの値を処理する関数

$(function(){
    $("#BA_boxform").validate({
    rules: {
        name: { required: true },
        lname: { required: true }
    },
    messages: {
        name: { required: "* required" },
        lname: { required: "* required" }
    },
    myEventHandler: $('#BA_boxform input:submit').on('click', function () {
// rest of code snippet you had

そうは言っても、それがあなたがやろうとしていることかどうかはわかりません。検証機能のオプションの一部としてクリック ハンドラーを追加しているようです。コード行を呼び出しており、メソッド ハンドラーを渡していないことを考えると、次のような意味だと思います。

$(function(){
    $("#BA_boxform").validate({
    rules: {
        name: { required: true },
        lname: { required: true }
    },
    messages: {
        name: { required: "* required" },
        lname: { required: "* required" }
    }
   }); 
// Validate is ended

// now add your event handler
  $('#BA_boxform input:submit').on('click', function () {

// rest of code snippet you had

上記は元の質問に答えました。 受け入れられた回答のコメントで提起された更新の質問に回答しようとします。私の提案のほとんどは、示されていない html コードに関するいくつかの仮定に基づいています。

OK - 更新を停止するには、2 つの簡単なオプションがあります。
1. 送信ボタンを から<input type='submit'/>に変更し<input type='button'/> ます。

#2 を試した後も更新される理由として考えられるのは、javascript 停止処理のエラーです。HTML の入力タイプを送信ではなく「ボタン」に変更します。次に、jquery セレクターで送信を削除し、代わりにクラスまたは ID でボタンを参照します$('#BA_boxform').find('.classOfYourButton').on('click', function () {。これにより、return false の部分を叩かなければ、誤った投稿が停止するはずです。

それ以外は、何が問題なのかわかりません。他の人が言ったように、検証メソッドのクロージャーを修正した後、コードは正しいです (ただし、必要なことはしていません)。他の適切なコードを使用して新しい質問に投稿すると、トラブルシューティングが容易になります。

于 2013-06-28T18:04:48.970 に答える
2

一見すると、あなた$("#BA_boxform").validate()は閉鎖されていません

于 2013-06-28T17:54:30.583 に答える
0

セレクターを正しく記述しましたか

var $dialog = $('<div id="dialog"></div>')

それだけでいいと思うから

var $dialog = $('#dialog')

または、新しい要素を作成する場合は、代わりに追加を使用してください。

于 2013-06-28T17:58:34.523 に答える