2011-08-03 8 views
0

私はjQueryの$ .post()を使ってajaxで投稿が行われた(既存の情報を編集するための)フォームを持っています。提出する前に、jQueryの検証では、変更された値が有効であることを確認し、有効な値の横にチェックマークを生成します。jQuery検証:フォームが送信された後にチェックマークを付ける方法(ajax submission)?

私の問題は、チェックマークが送信後に消えないことです。私はチェックマークを削除したが、変更されたすべての入力を元の値に戻すという望ましくない副作用を持つvalidatorメソッドresetForm()を試しました。

チェックマークのみを削除する方法はありますか?

resetForm()によって記憶された元の値を更新する方法はありますか?もしそうなら、私は望ましくない副作用なしに目的を達成するためにresetForm()を使うことができました。

助けてください。皆さん、ありがとうございました。

説明:「チェックマーク」と言うと、チェックボックスと同じではありません。実際、私の質問はチェックボックスとは関係ありません。チェックマークとして何を参照しているのかを確認するには、hereに行き、有効な文字列をテキスト入力の1つに入力します。

+0

郵便番号。チェックマークは何ですか? – Andrew

答えて

3

これらの「チェックマーク」は結果オフCSSスタイリングしている、「確認」クラスは、関連する入力が有効であると考えられた<td class="status">、内<label>に追加された後。クラスにラベルが追加され、チェックマークの背景になります。

とにかく、フォームの送信時に何らかの動作を引き起こすには、submitHandlerを使用してください。例:

$('form').validate({ 
    // Your config here... 
    submitHandler: function() { 
     $('label').removeClass('checked'); 
    } 
}); 

あなたがあなたセットアップおよびオプションでどのような作品を行う必要があるでしょうので、それはすべて、そのデモにカスタマイズされています。

0

入力テキストフィールドと同じように、element.defaultValueのチェックボックスはcheckboxObject.defaultCheckedです。これはブール値で、attr()関数を使用してJQueryで簡単に適用できます。 prop()機能は、このような、「確認」「無効」、「選択」など、しかし、あなたは、おそらくかなりのようなものを使用したいフォームのリセット機能について

$('#mybox').prop('checked'); 

でボックスをチェックとしての性質のために推奨されます

$(':checkbox').each(function(){ 
    $(this).attr('checked',$(this).defaultChecked); 
}); 

http://www.w3schools.com/jsref/prop_checkbox_defaultchecked.asp

1

あなたはjQueryのを介してこれを行うことができます。

$('input[type="checkbox"]:checked').removeAttr('checked') 

私はあなたの質問に誤解している可能性があります。これらのチェックマークのクラスを見つけ、display:noneまたはvisibility:hiddenに設定してください。

+0

チェックボックスのいくつかがデフォルトでチェックされると思われる場合はどうなりますか? – AlienWebguy

+0

彼はすべてのチェックマークを削除すると言いましたが、私はチェックボックスのチェックマークではなく、間違ったチェックマークを参照していると思います。 – ace

+0

追加の属性を追加することができます。デフォルトでチェックされるチェックボックスを識別するための 'default'。 removeAttr( 'checked') 'remove( 'checked') ';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;& – ace

1

妥当性チェックの後で、提出前にフォーム値を取得し、提出後に再入力することが1つの選択肢となります。 demo you linked to

var backup = $('#form-id').serializeArray(); 
$('#form-id').resetForm(); 

// 
// submit logic 
// 

$.each(backup, function(key, value) { 
    $('[name="' + key + '"]').val(value); 
}); 
関連する問題