[html] jQuery를 통해 제출하지 않고 HTML5 양식 유효성 검사를 수행하는 방법
내 앱 에이 양식이 있으며 AJAX를 통해 제출하지만 클라이언트 측 유효성 검사에 HTML5를 사용하고 싶습니다. 따라서 jQuery를 통해 양식 유효성 검사를 강제로 수행 할 수 있기를 원합니다.
양식을 제출하지 않고 유효성 검사를 시작하고 싶습니다. 가능합니까?
답변
특정 필드가 유효한지 확인하려면 다음을 사용하십시오.
$('#myField')[0].checkValidity(); // returns true/false
양식이 유효한지 확인하려면 다음을 사용하십시오.
$('#myForm')[0].checkValidity(); // returns true/false
불행히도 일부 브라우저에있는 기본 오류 메시지 (예 : Chrome)를 표시하려면 다음과 같이 양식을 제출하면됩니다.
var $myForm = $('#myForm');
if(! $myForm[0].checkValidity()) {
// If the form is invalid, submit it. The form won't actually submit;
// this will just cause the browser to display the native HTML5 error messages.
$myForm.find(':submit').click();
}
도움이 되었기를 바랍니다. 일부 브라우저에서는 HTML5 유효성 검사가 지원되지는 않습니다.
답변
이 솔루션이 저에게 효과적이라는 것을 알았습니다. 다음과 같이 자바 스크립트 함수를 호출하십시오.
action="javascript:myFunction();"
그런 다음 html5 유효성 검사가 있습니다 … 정말 간단합니다 🙂
답변
if $("form")[0].checkValidity()
$.ajax(
url: "url"
type: "post"
data: {
}
dataType: "json"
success: (data) ->
)
else
#important
$("form")[0].reportValidity()
부터 : html5 양식 유효성 검사
답변
아래 코드는 저에게 효과적입니다.
$("#btn").click(function () {
if ($("#frm")[0].checkValidity())
alert('sucess');
else
//Validate Form
$("#frm")[0].reportValidity()
});
답변
좀 더 깔끔한 일반적인 방법은 다음과 같습니다.
다음과 같이 양식을 작성하십시오 (아무 것도하지 않는 더미 양식 일 수 있음).
<form class="validateDontSubmit">
...
제출하고 싶지 않은 모든 양식을 바인드하십시오.
$(document).on('submit','.validateDontSubmit',function (e) {
//prevent the form from doing a submit
e.preventDefault();
return false;
})
이제 클릭하면 양식의 유효성을 검사하려는 <a>
(안에 있음 <form>
)이 있다고 가정 해 보겠습니다.
$('#myLink').click(function(e){
//Leverage the HTML5 validation w/ ajax. Have to submit to get em. Wont actually submit cuz form
//has .validateDontSubmit class
var $theForm = $(this).closest('form');
//Some browsers don't implement checkValidity
if (( typeof($theForm[0].checkValidity) == "function" ) && !$theForm[0].checkValidity()) {
return;
}
//if you've gotten here - play on playa'
});
몇 가지 참고 사항 :
- 유효성 검사를 위해 실제로 양식을 제출할 필요는 없습니다. 호출
checkValidity()
은 충분합니다 (적어도 크롬에서는). 다른 브라우저에서이 이론을 테스트하면서 의견을 추가 할 수 있다면이 답변을 업데이트하겠습니다. - 유효성 검사를 트리거하는 것은 내에 있어야 할 필요는 없습니다
<form>
. 이것은 범용 솔루션을위한 깨끗하고 유연한 방법입니다.
답변
파티에 늦을 수도 있지만 어떻게 든 비슷한 문제를 해결하는 동안이 질문을 찾았습니다. 이 페이지의 코드가 나를 위해 작동하지 않았으므로 지정된대로 작동하는 솔루션을 생각해 냈습니다.
문제는 <form>
DOM에 단일 <button>
요소가 포함 되면 한 번 실행되면 <button>
자동으로 양식을 요약 하는 것입니다. AJAX를 사용하는 경우 기본 동작을 방지해야합니다. 그러나 문제가 있습니다. 그렇게하면 기본 HTML5 유효성 검사도 방지 할 수 있습니다. 따라서 양식이 유효한 경우에만 해당 버튼의 기본값을 방지하는 것이 좋습니다. 그렇지 않으면 HTML5 유효성 검사로 인해 제출이 보호됩니다. jQuery checkValidity()
는 다음과 같이 도움이 될 것입니다.
jQuery :
$(document).ready(function() {
$('#buttonID').on('click', function(event) {
var isvalidate = $("#formID")[0].checkValidity();
if (isvalidate) {
event.preventDefault();
// HERE YOU CAN PUT YOUR AJAX CALL
}
});
});
위에서 설명한 코드를 사용하면 양식을 제출하지 않고도 기본 HTML5 유효성 검사 (유형 및 패턴 일치)를 사용할 수 있습니다.
답변
javascript / jquery를 사용하여 “HTML5 유효성 검사”와 HTML 양식의 유효성 검사에 대해 두 가지로 이야기합니다.
HTML5에는 양식의 유효성을 검사하기위한 기본 제공 옵션이 있습니다. 필드에서 “필수”속성을 사용하는 것과 같이 (브라우저 구현에 따라) javascript / jquery를 사용하지 않고 양식 제출에 실패 할 수 있습니다.
javascrip / jquery를 사용하면 다음과 같이 할 수 있습니다
$('your_form_id').bind('submit', function() {
// validate your form here
return (valid) ? true : false;
});