まず、すべての追加スクリプト (検証とテンプレート) のフィドルを取り除きました。
http://jsfiddle.net/Jacek_FH/EwpXp/5/
次に、niceforms select で動作するようにリセット機能にパッチを当てました。
http://jsfiddle.net/Jacek_FH/EwpXp/7/
Niceforms はどのように機能しますか?
アイデアは単純です: 通常の入力フィールド (ラジオ ボタン、チェックボックス、テキストエリアなどを含む) は、少ししかスタイルを設定できないため、それらを非表示にし、それらの外観を同様に機能する、完全にカスタマイズ可能な新しい構造に置き換える必要があります。理論的には、それほど複雑ではないように思えます。しかし、理論から実践までには長い道のりがあります。
select の処理方法
<div class="NFSelect" style="width: 80px; left: 140px; top: 77px; z-index: 999;">
<img class="NFSelectLeft" src="img/0.png">
<div class="NFSelectRight">- Select -</div>
<div class="NFSelectTarget" style="display: none;">
<ul class="NFSelectOptions">
<li><a href="javascript:;" class="NFOptionActive">- Select -</a></li>
<li><a href="javascript:;">Active</a></li>
<li><a href="javascript:;">Inactive</a></li>
</ul>
</div>
</div>
<select id="status" class="NFhidden" name="status" size="1">
<option selected="selected" value="">- Select -</option>
<option value="Active">Active</option>
<option value="Inactive">Inactive</option>
</select>
フォームのリセットがトリガーされると、すべての html 入力がリセットされますが、Niceforms は div で選択を複製します。したがって、値をオプションから Niceforms div にコピーしました (リセット後)。私のコード:
$('#reset').click(function(){
// reset form
$(':input','#templatesForm')
.not(':submit, :button, :hidden, :reset')
.val('');
// update select
$('select').each(function(){
var option = $('option:selected', this).html();
var niceselect = $(this).parents('dd').find('.NFSelectRight');
niceselect.html(option);
$(this).parents('dd')
.find('.NFSelectTarget a')
.removeClass('NFOptionActive')
.filter(':first').addClass('NFOptionActive');
});
});
編集
検討した後、別の方法もあります-Niceformsをリロードできます。しかし、それには価格があります - フォームが点滅します
$('#reset').click(function(){
// reset form
$(':input','#templatesForm')
.not(':submit, :button, :hidden, :reset')
.val('');
// reload niceforms
NFDo('stop');
NFDo('start');
});