2013-07-04 4 views
1

누구든지 내 코드에 문제가있는 부분을 도울 수 있습니다. 양식 필드가 유효하지 않더라도 양식을 제출할 수 없으며, 하루 종일 사용하고 여러 가지 방법을 시도했지만 불운.유효성 검사가 실패 할 경우 양식을 제출하지 못하게하십시오

[Display(Name = "Amount to convert")] 
    [Required(ErrorMessage = " is required")] 
    [RegularExpression("^[0-9]+$", ErrorMessage = " requires numbers only")] 
    [Range(1, int.MaxValue, ErrorMessage = " must be more than 1")] 





$(function() { 
     // $("#frmWeightsMeasures").validate(); 
     $("#frmWeightsMeasures").submit(function(event) { 
      // var isvalidate = $("#frmWeightsMeasures").valid(); 
      // if (isvalidate) { 
       event.preventDefault(); 
      // } 
      $.ajax({ 
       type: "POST", 
       cache: true, 
       url: form.attr("action"), 
       data: form.serialize(), 
       dataType: "json", 
       error: searchFailed, 
       success: function(weightsData) { 
        $("#DisplayConversion").html(weightsData.DisplayConversion); 
       } 
      }); 
     }); 
    }); 

    function searchFailed(xhr, errorType, exception) { 
     var errorMessage = exception || xhr.statusText; 
     $("#DisplayConversion").html("Sorry, there was a problem with the search."); 
    } 

나는 희망이 미래에 누군가가 도움이 될 것입니다, 아래의 작업 코드를 추가 한 이야기의 모토는, 코드를 수정할 때, 삭제 무엇을보고.

$(function() { 
      $("#frmWeightsMeasures").validate(); 
      $("#frmWeightsMeasures").submit(function(event) { 
       var isvalidate = $("#frmWeightsMeasures").valid(); 
       if (isvalidate) { 
        event.preventDefault(); 
        var form = $(this); 
        $.ajax({ 
         type: "POST", 
         cache: true, 
         url: form.attr("action"), 
         data: form.serialize(), 
         dataType: "json", 
         error: searchFailed, 
         success: function(weightsData) { 
          $("#DisplayConversion").html(weightsData.DisplayConversion); 
         } 
        }); 
       } 
      }); 
     }); 

     function searchFailed(xhr, errorType, exception) { 
      var errorMessage = exception || xhr.statusText; 
      $("#DisplayConversion").html("Sorry, there was a problem with the search."); 
     } 
+0

경우 제출 양식을 방지 할'[필수]'않습니다 올바른 오류를 반환합니까? – andreister

+0

안녕하세요 andreister, 아니, 그럼 기본 MVC 오류가 발생합니다 변환 할 금액이 필요합니다. '필요합니다.' – CareerChange

답변

2

실제로 양식이 정의되지 않은 이유를 언급하지 않았습니다. 당신은 당신의 아약스 호출하기 전에 다음을 넣어해야합니다 : 또한

var form = $(this);

, 검증을 위해 : 당신이 제거하면

return $(form).valid()가 잘못

+1

지출했습니다. 이 문제를 해결하기 위해 오랫동안 노력하고 여러 가지 방법을 시도해 보았습니다. 약 2 분 전까지이 코드 행을 삭제하기 전까지는 깨닫지 못했습니다. var form = $ (this); 그것을 다시 추가하고 지금은 잘 작동합니다. 죄송합니다. 컴퓨터를 오랫동안 보며 보냈습니다. – CareerChange

1

당신은에서는 event.preventDefault()와 event.stopPropagation()

혼자로 preventDefault 여전히 당신이 원하는하지 않을 수 있습니다 거품이 최대에 오류를 수를 시도 할 수 있습니다.

+0

안녕 EJ Brennan, 여전히 동일한 오류가 발생합니다. 0x800a1391 - JavaScript 런타임 오류 : 'form'이 정의되지 않았습니다. – CareerChange

0

오류가 발생하면 최상을 반환합니다. 대신 .preventDefault();

관련 문제