0

次を使用してフォームをリセットしようとしています:

myForm.reset();

私はそのように値を設定しようとしました:

//solved by setting $('#myTextControl').attr('defaultValue', 'my initial value');
//Thanks RobG
$('#myTextControl').val('my value');
$('#myTextControl').attr('value', 'my value');

//solved by setting $('#myTextControl').attr('defaultChecked', false or true); initially
$('#myCheckboxControl')attr('checked', 'checked');    


//Finally it works with radios too, as shown here -> http://jsfiddle.net/4VAkp/2/
$('#myRadioControl')attr('checked', 'checked');

ここでわかるように、値を更新する方法は重要です-> http://jsfiddle.net/4VAkp/3/ attrを使用して値を更新すると、値がデフォルトとして修正されます: 間違っています

radio2.attr('checked', true);
text2.attr('value', 'my text2');

これは値をデフォルトとして設定しません (予想どおり): 正しい

radio.prop('checked', true);
text.val('my text');

これは、値がユーザーによって設定された場合は正常に機能しますが、値がプログラムで設定された場合は機能しません。

最初にプログラムで値を設定し、次にUIを介して最後にリセットすると、プログラムで設定された状態に戻ります。

デフォルトを変更せずにプログラムで値を設定する方法があるはずだと思います。

何かご意見は?

前もって感謝します、

エリック

4

1 に答える 1

2

フォームをリセットすると、コントロールがデフォルト値に設定されます。デフォルト値は、value属性によって指定されるか、defaultValueプロパティによって設定されます。getAttributeにバグがある (古い?) IE を除いて、ユーザーによる変更はこれらのいずれも変更しません。

value 属性または defaultValue プロパティを変更せずにフォームを他の値のセットに「リセット」するには、コントロールのvalueプロパティをプログラムで設定する必要があります。

于 2013-04-05T06:14:36.003 に答える