いくつかのボタンのあるフォームがあり、http://jquery.bassistance.de/validate/の jQuery Validation Pluginを使用しています。私のJavaScriptコードのどこからでも、jquery検証プラグインによってフォームが有効な状態と見なされるかどうかを確認できる方法があるかどうかを知りたいだけです。
いくつかのボタンのあるフォームがあり、http://jquery.bassistance.de/validate/の jQuery Validation Pluginを使用しています。私のJavaScriptコードのどこからでも、jquery検証プラグインによってフォームが有効な状態と見なされるかどうかを確認できる方法があるかどうかを知りたいだけです。
回答:
.valid()
jQuery Validationプラグインから使用:
$("#form_id").valid();
選択したフォームが有効かどうか、または選択したすべての要素が有効かどうかを確認します。このメソッドを使用してフォームをチェックする前に、フォームでvalidate()を呼び出す必要があります。
ここで、フォームid='form_id'
はすでに.validate()
呼び出されているフォームです。
:)
TypeError valid() not a function
プラグインを受け取っている場合は、そのプラグインがjqueryライブラリに含まれていないため、ファイルにプラグインを追加してください。<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/jquery.validate.min.js"></script>
2015年の回答:これは最新のブラウザーでそのまま使用できます。jQueryのHTML5 CheckValidity APIを使用するだけです。これを行うためのjquery-html5-validityモジュールも作成しました。
npm install jquery-html5-validity
次に:
var $ = require('jquery')
require("jquery-html5-validity")($);
それからあなたは走ることができます:
$('.some-class').isValid()
true
valid
関数を呼び出すこともvalidate
フォームを検証することもないので、私は関数よりもこれを好みます。
@mikemaccanaの回答が役立ちます。
また、https://github.com/ryanseddon/H5Fも使用しました。で発見http://microjs.com。これはある種のポリフィルであり、次のように使用できます(例ではjQueryを使用しています)。
if ( $('form')[0].checkValidity() ) {
// the form is valid
}
valid()メソッド。
iContribute:正解に遅すぎることはありません。
var form = $("form#myForm");
if($('form#myForm > :input[required]:visible').val() != ""){
form.submit();
}else{
console.log("Required field missing.");
}
このように、「必須」フィールドの基本的なHTML5検証は、フォームの「名前」値を使用した標準の送信を妨げることなく行われます。
入力のグループについては、@ mikemaccanaの回答に基づいて改善されたバージョンを使用できます
$.fn.isValid = function(){
var validate = true;
this.each(function(){
if(this.checkValidity()==false){
validate = false;
}
});
};
これを使用して、フォームが有効かどうかを確認できます。
if(!$(".form-control").isValid){
return;
}
同じテクニックを使用して、すべてのエラーメッセージを取得できます。
$.fn.getVelidationMessage = function(){
var message = "";
var name = "";
this.each(function(){
if(this.checkValidity()==false){
name = ($( "label[for=" + this.id + "] ").html() || this.placeholder || this.name || this.id);
message = message + name +":"+ (this.validationMessage || 'Invalid value.')+"\n<br>";
}
})
return message;
}
Magentoの場合、以下のような方法でフォームの検証を確認します。
あなたはこれを試すことができます:
require(["jquery"], function ($) {
$(document).ready(function () {
$('#my-button-name').click(function () { // The button type should be "button" and not submit
if ($('#form-name').valid()) {
alert("Validation pass");
return false;
}else{
alert("Validation failed");
return false;
}
});
});
});
これがあなたに役立つことを願っています!