2017-03-03 2 views
3

연락처 양식 오류 호출자를 작성하려고합니다.Jquery 중복 Jquery 선택기

내 Jquery 코드가 중복 된 jQuery 선택기 closest thing i could find에 나와 동일한 문제가 있다고 말했습니다. 하지만 사람들이 그 질문에 준 수정 프로그램을 구현하려했지만 제대로 작동하지 않았습니다. 내가 뭘 시험했는지 보여줘. 어쩌면 누군가가 여기에서 문제를 볼 수 있습니다.

여기 내 코드입니다.

<script> 
     $(document).ready(function() { 
      $("#submit").click(function (e) { 
       e.preventDefault(); 

       var $name = $("#name"), 
        $email = $("#email"), 
        $phone = $("#phone"), 
        $address = $("#address"), 
        $message = $("#message"); 

       var $name_error = $("#name_error"), 
        $email_error = $("#email_error"), 
        $telephone_error = $("#telephone_error"), 
        $message_error = $("#message_error"), 
        $address_error = $("#address"); 


       var data = { 
        name: $name.val(), 
        email: $email.val(), 
        telephone: $phone.val(), 
        address: $address.val(), 
        message: $message.val() 
       }; 

       $.ajax({ 
        type: "POST", 
        url: "/api/contact/submit", 
        data: data, 
        success: function (data) { 
         console.log(data); 
         $('#error_list').empty(); 
         $('#show_error').hide(); 
         if (data.hasOwnProperty('errors')) { 
          // Show de errors. 

          $.each(data.errors, function (entry) { 
           switch (entry) { 
            case 'email': 
             $('#error_list').append('<li>' + data.errors.email + '</li>'); 
             $email_error.show(); 
             break; 
            case 'name': 
             $('#error_list').append('<li>' + data.errors.name + '</li>'); 
             $name_error.show(); 
             break; 
            case 'message': 
             $('#error_list').append('<li>' + data.errors.message + '</li>'); 
             $message_error.show(); 
             break; 
            case 'message': 
             $telephone_error.show(); 
             break; 
            case 'message': 
             $address_error.show(); 
             break; 
           } 
          }); 


          $('#show_error').show(); 
         } 
         console.log("banaan"); 
         // Reset het form 
         // Show succcess 
         $("#contact-form").trigger('reset'); 
         $("#success_message").show(); 
        }, 
        dataType: "json" 
       }); 
      }); 
     }); 
    </script> 

var 태그가이 오류를 표시합니다. 예 : ("#name")에서 중복 선택기라고 말했습니다. 하지만 처음에는 vars가 같았습니다. 그래서 var $namevar $name_error은 같은 값이었습니다 : ("#name") 이제는 ("#name_error")으로 바뀌 었습니다. 다른 곳에서는 uppon을 ("#name")라고 부르지 만 계속해서 그 복사본을 말하고 있습니다.

다른 사람이이 오류를 설명하거나 해결할 수 있다면 기쁘게 생각합니다. 당신은 모든 가치에 특정한 이름을 부여해야하고 나는 그랬지만 여전히 그 말은 오류입니다.

+0

주소가 중복되었습니다. –

+0

예. 다른 사람이 방금 지적했습니다. 그래도 고마워. –

답변

4

당신은 #address을 선택하는 두

은 내 생각은
$address = $("#address"), 
(...) 
$address_error = $("#address"); 

, 당신은이 코드가 있어야합니다 같은 토큰에 의해

$address_error = $("#address_error") 

을, 당신은 당신의 코드에서 다음과 같은 중복 선택기가 :

$('#error_list') 
$('#show_error') 

다음 코드에는 Duplicate Jquery Selector mess PhpStorm의 나이 :

<script> 
    $(document).ready(function() { 
     $("#submit").click(function (e) { 
      e.preventDefault(); 

      var $name = $("#name"), 
       $email = $("#email"), 
       $phone = $("#phone"), 
       $address = $("#address"), 
       $message = $("#message"); 

      var $name_error = $("#name_error"), 
       $email_error = $("#email_error"), 
       $telephone_error = $("#telephone_error"), 
       $message_error = $("#message_error"), 
       $address_error = $("#address_error"); 

      var $error_list = $('#error_list'), 
       $show_error = $('#show_error'); 


      var data = { 
       name: $name.val(), 
       email: $email.val(), 
       telephone: $phone.val(), 
       address: $address.val(), 
       message: $message.val() 
      }; 

      $.ajax({ 
       type: "POST", 
       url: "/api/contact/submit", 
       data: data, 
       success: function (data) { 
        console.log(data); 
        $error_list.empty(); 
        $show_error.hide(); 
        if (data.hasOwnProperty('errors')) { 
         // Show de errors. 

         $.each(data.errors, function (entry) { 
          switch (entry) { 
           case 'email': 
            $error_list.append('<li>' + data.errors.email + '</li>'); 
            $email_error.show(); 
            break; 
           case 'name': 
            $error_list.append('<li>' + data.errors.name + '</li>'); 
            $name_error.show(); 
            break; 
           case 'message': 
            $error_list.append('<li>' + data.errors.message + '</li>'); 
            $message_error.show(); 
            break; 
           case 'message': 
            $telephone_error.show(); 
            break; 
           case 'message': 
            $address_error.show(); 
            break; 
          } 
         }); 


         $show_error.show(); 
        } 
        console.log("banaan"); 
        // Reset het form 
        // Show succcess 
        $("#contact-form").trigger('reset'); 
        $("#success_message").show(); 
       }, 
       dataType: "json" 
      }); 
     }); 
    }); 
</script> 
+0

오. 너희 뇌진탕이야. 하지만 난 아직도 당신이 그것을 upvoting 그래서 그것을 변경하지 못했습니다 오류 제거. –

+0

모든 단일 $ ("# 변수")가 오류 또는 팝업 메시지를 표시하고 강조 표시됩니다. –

+1

코드에'case 'message''도 세 번 있습니다. 붙여 넣은 코드를 확인하십시오. 더 이상이 오류를주지 말아야합니다. (적어도이 파일 내에서) –