メニューからユーザー選択で決定された隠しフィールドを無効にするフォームを作成しようとしています。当初、すべてのフィールドを非常に簡単に無効にすることができ、ユーザーが別のオプションを選択したときに特定のフィールドを再度有効にすることができます。しかし、私はすべてのフィールドをユーザが「場所の変更」をクリックしたときに再び無効にする必要がありますが、私はこの作業を行うことはできません!jQuery - 非表示の入力属性を更新できません
私のコードの背後にある目的は、明確にするために大きく編集されていますが、他の無関係な事柄が発生するため、完全にはわかりません。これは私が何をする必要があるかです:)
jQueryの、言えば十分:
$('input[name="hosted_button_id"]').attr("disabled",true);
$('#changelocation').click(function(){
$('input[name="hosted_button_id"]').attr("disabled",true);
});
$('.deliveryselection').change(function(){
var deliveryLocation = $(this).val();
$('input[title="' + deliveryLocation + '"]').removeAttr("disabled");
});
HTML:
<select class="deliveryselection">
<option>Please select</option>
<option value="UK">UK</option>
<option value="Europe">Europe</option>
<option value="North America">North America</option>
<option value="Rest of World">Rest of World</option>
</select>
<a href="javascript:void(0)">Change location</a>
<form>
<input type="hidden" name="cmd" value="_s-xclick">
<input type="button" name="hosted_button_id" title="UK" value="UK"><br />
<input type="button" name="hosted_button_id" title="Europe" value="Europe"><br />
<input type="button" name="hosted_button_id" title="North America" value="North America"><br />
<input type="button" name="hosted_button_id" title="Rest of World" value="Rest of World"><br /><br />
<input type="submit" name="submit">
</form>
私はすでにこれがで設定持っていますここにjsfiddle:http://jsfiddle.net/solomon/rS7nV/1/
EDIT 私はこの問題を発見したと思います。私の実際のコードでは、ボタンフィールドではなく、隠しフィールドを扱っていましたので、私の労働の成果を直接見ることができませんでした。私は、隠されたフィールドの無効状態を判断するためにFirebugを使用してきました。 jsfiddleで作業している間にコードをボタンに変換しただけで、コードが正常に機能することがわかりました(私はIDを削除した少年のエラーから離れています...あなたの助けを借りてくれてありがとう!)。 Firebugがレポートを更新していないことが判明していて、私のコードが正常に機能していたにもかかわらず、フィールドが無効になっていても無効になっていることがわかっています。それはちょっとイライラしています。私の午後はFirebugのバグで無駄になりました! :)
ネヴァーマインド - それがすべて修正されます:)
'.prop( 'disabled'、true_or_false)'を使うことができます - 文字列属性を扱う必要はありません。 – ThiefMaster