2016-06-23 7 views
0

내가 같은 정의 ACTIVITY_NAME라는 필드가에있는 텍스트 상자에 확인을 확인 면도기를 강제로 어떻게 :나는 자바 스크립트

[Required(AllowEmptyStrings = false, ErrorMessage = "Acitivity Name is Required.")] 
[StringLength(255)] 
    public string ACTIVITY_NAME { get; set; } 

I 설정이이 같은 프런트 엔드 렌더링 내 텍스트 상자 :

를 양식이 submited 때
@Html.TextBoxFor(m => m.EditActivity.ACTIVITY_NAME, new { @id = "ActivityName", @class = "width400", placeholder = Localization.ActivityName }) 
@Html.ValidationMessageFor(m => m.EditActivity.ACTIVITY_NAME) 

은 다음 JS 핸들러는 해고 :

$('#AddTaskActivity').click(function (evt) { 
     $('#activityModal').modal('hide'); 
     evt.preventDefault(); 
     var formData = $('#ActivityForm').serialize(); 
     CreateActivity(formData); 
    }); 

을 그러니까 기본적으로,이 woul을 d는 기본 처리기를 방지하고 유효성 검사는 실행되지 않습니다. 나는이 코드를 작성하지 않았지만 검증을 추가하려고합니다. 서버에 게시하기 전에 처리기에서 검증을 강제 실행하려면 어떻게해야합니까?

+0

유효성 검사 트리거에 대해 가짜 제출 양식을 작성해야합니다. –

+0

유효성 검사 클라이언트 측만 호출 할 수는 없습니까? – Bill

+0

클라이언트 측 유효성 검사는 양식을 제출하려고 할 때만 활성화됩니다. –

답변

1

더 나은 방법이있을 수 있지만 양식을 제출하기 전에 클라이언트 쪽 유효성 검사를 트리거하는 방법입니다. 그들은 양식을 제출하기 전에 전화해야합니다.

// For non Ajax forms 
function ValidateHtml5(event) { 
    event = event || window.event || event.srcElement; 

    var form = $(event.target); 

    if (form[0].checkValidity()) { 
     return true; 
    } else { 
     event.preventDefault(); 
     $('<input type="submit">').hide().appendTo(form[0]).click().remove(); // trigger 
     return false; 
    } 
} 

// For Ajax form validation 
function ValidateHtml5Ajax(form) { 
    if (form.checkValidity()) { 
     return true; 
    } else { 
     $('<input type="submit">').hide().appendTo(form).click().remove(); // trigger 
     return false; 
    } 
} 
관련 문제