誰でも良いチュートリアル/ Javascriptを使用する方法を知っている、onSubmit、class="required"
ですべての空のフィールドの背景色を変更しますか?おそらく、Onsubmitの検証バックグラウンドのフィールドが変更されましたか?
1
A
答えて
3
このような何かは、トリックを行う必要があり、それはあなたがより多くの細部を掲示せずに探している内容を正確に把握することは困難です。
document.getElementById("myForm").onsubmit = function() {
var fields = this.getElementsByClassName("required"),
sendForm = true;
for(var i = 0; i < fields.length; i++) {
if(!fields[i].value) {
fields[i].style.backgroundColor = "#ff0000";
sendForm = false;
}
else {
//Else block added due to comments about returning colour to normal
fields[i].style.backgroundColor = "#fff";
}
}
if(!sendForm) {
return false;
}
}
このリスナーをid
"myForm"という形式のonsubmit
イベントに関連付けます。そのフォーム内のすべての要素を「必須」のクラスで取得します(古いバージョンのIEではgetElementsByClassName
がサポートされていないため、その代替方法を検討したい場合があります)、そのコレクションをループし、空のものがあれば背景色を変更します。空白があれば、フォームが送信されないようにします。
ここにはworking exampleがあります。
0
0
私はすぐにjQueryのファンになりました。ドキュメントは素晴らしいです。
http://docs.jquery.com/Downloading_jQuery
あなたはライブラリを試してみることにした場合は、ここにあなたのコードは次のとおりです。
//on DOM ready event
$(document).ready(
// register a 'submit' event for your form
$("#formId").submit(function(event){
// clear the required fields if this is the second time the user is submitting the form
$('.required', this).removeClass("required");
// snag every field of type 'input'.
// filter them, keeping inputs with a '' value
// add the class 'required' to the blank inputs.
$('input', this).filter(function(index){
var keepMe = false;
if(this.val() == ''){
keepMe = true;
}
return keepMe;
}).addClass("required");
if($(".required", this).length > 0){
event.preventDefault();
}
});
);
+0
jQueryはブラウザ間で動作し、すぐにフロントエンドのUIから抜け出し、書きたいコードに戻ります。それはimhoを拾うための優れた図書館です。 – DefyGravity
関連する問題
- 1. フィールド検証で検証メッセージが更新されませんか?
- 2. 別のフィールドが変更されたときのフィールドのトリガー検証
- 3. androidのedittextでフォーカスが変更された後のフィールドの検証方法
- 4. DbContextは変更されたプロパティのみを検証します
- 5. モンゴイ:「validates_uniqueness_of」検証は、特定のフィールドが変更されたときにのみ起動されます
- 6. ReactJSがonSubmit検証が動作しない形成、それが
- 7. CRM 2011アップデートプラグイン:どのフィールドが変更されましたか?
- 8. iOS - バックグラウンドから戻った後でUIToolbarのサイズが変更されました。
- 9. Ecto Changeset、変更時に検証されない必須フィールド
- 10. Facebookの認証メカニズムが変更されましたか?
- 11. wpf update cultureが変更されたときの検証エラー
- 12. Laravelが検証フィールドをArrayフィールドに設定しましたか?
- 13. Livevalidation:デフォルト値が変更されたときのみ検証します
- 14. Angular4フィールドAが変更されたときにフィールドBを変更します
- 15. MVC 3 - 変更フィールド値事前検証
- 16. Drupal 8のフィールドが変更されました
- 17. Interbaseの年フィールドが変更されました
- 18. 不変フィールドのgrails検証
- 19. 検証中にFormalchemyで他のフィールドの値を変更しますか?
- 20. 入力フィールドの変更がJavascriptによって変更されました
- 21. 、検証し、変更のコールバック
- 22. 汎用フィールドが変更されたイベント
- 23. jqGrid:検索フォームがフラットに変更されましたか?
- 24. プラグインは変更されたメッセージを表示しません - jQueryプラグインの検証
- 25. 検索結果のバックグラウンドを変更してください
- 26. フォーム変数をonsubmitフィールドに渡しますか?
- 27. フィールドの値のyesまたはnoが変更されました
- 28. フィールドの隣にJSF検証エラーが表示されます
- 29. CRM2015:フォームが初めて更新されたときにフィールドを検証する
- 30. ブートストラップフォームの検証 - 色が変更されない
素晴らしいスクリプトのように見えますが、何らかの理由でエラーが発生しました。エラー:document.getElementById( "formID")is null "(私のフォームのIDはformIDです) –
+1のような非jQueryソリューションを求めました。 「2番目の送信」シナリオに必要なクラスをクリアするコードを追加するだけです。 – DefyGravity
コードが実行されているときにDOMが準備できていない可能性があります。私の例を 'onload'関数にラップしてください:' window.onload = function(){... code here ...} ' –