これは検証スクリプト
です このコードは、ユーザーがフォームの送信ボタンを押すと実行されます すべての必須フィールド (配列に入力されたもの) をループし、...
1. 要素が非表示かどうかを確認します
2. そうでない場合は空ですか?
3. そうでない場合、それは誤りですか? (選択できないオプションの値として false を使用します)
そして、これらすべてが変数を true または false に設定します。
// when submitting the registration form
function mandatoryCheck() {
jQuery('.tx-powermail-pi1_formwrap_1723 form.tx_powermail_pi1_form').submit(function(event) {
var success = false;
var element;
jQuery.each(mandatoryFields, function(index, value) {
element = jQuery('#powermaildiv_uid'+value+' input, #powermaildiv_uid'+value+' select')
element.each(function() {
// add class required to all fields
jQuery(this).addClass('required');
// is the element hidden, return true
if(jQuery(this).hasClass('fieldHidden') == true || jQuery(this).is(':disabled')) {
success = true;
} else {
// is the input field empty, return false
if(jQuery(this).val().length === 0) {
success = false;
// is the input field not empty, return true
} else {
// is the input field false, return false
if(jQuery(this).val() == 'disabled') {
success = false;
} else {
success = true;
}
}
}
// For each element add/remove validation class
if(success == false) {
jQuery(this).addClass('validation-failed').removeClass('validation-passed');
} else {
jQuery(this).addClass('validation-passed').removeClass('validation-failed');
}
});
});
// if succes is false, show error message and return false
if(success == false) {
jQuery('#c1799').fadeIn().css('display', 'block');
event.preventDefault();
return false;
} else {
jQuery('#c1799').fadeOut();
}
});
}
Firefox、Chrome ie9 では動作しますが、7 または 8 では動作しません。IE7 または 8 では、すべてランダムに要素にクラスが追加されます。
select要素を検証すると合格するが、入力フィールドは失敗するようです
何が間違っている可能性がありますか?
編集: ここにページがあります: http://asdf.patrikelfstrom.se/index.php?id=267
JS
を表示する小さなフォームの場合は 1234 と入力します: http://asdf.patrikelfstrom.se/typo3conf/ext/ gc_fm/res/js/ShowAndHideFields.js
送信 (absenden) を押すと、フィールド Türnummer は緑色 (chrome、firefox などの場合) になるはずですが、ie7/8 では赤色になります。
Wähle... (選択ボックス) をクリックして Wohnung を選択すると、その下のフィールドが有効になり、今すぐ送信を押すと、要素が表示されて空であるため、Türnummer は赤く表示されます。
これは機能しているように見えますが、選択ボックスをもう一度クリックして einfamilienhaus を選択すると.
フィールドは無効になり、送信時に緑色になるはずですが、IE7/8 ではそうではありません。