メニューからのユーザーの選択によって決定される非表示フィールドを無効にするフォームを作成しようとしています。最初はすべてのフィールドを非常に簡単に無効にすることができ、ユーザーが別のオプションを選択したときに特定のフィールドを再度有効にすることができます。ただし、ユーザーが「場所の変更」をクリックしたときにすべてのフィールドを再度無効にできるようにする必要がありますが、これを機能させることはできません!
これまでの私のコードは次のとおりです...私のコードの背後にある目的は、明確にするために大幅に編集されているため、完全に明確ではないかもしれませんが、他のさまざまな無関係なことが起こります。言うまでもなく、これが私がする必要があることです:)
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");
});
</p>
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/
編集 問題を発見したと思います。私の実際のコードでは、ボタン フィールドではなく非表示フィールドを扱っていたので、作業の成果を直接見ることができませんでした。非表示フィールドの無効な状態を判断するために Firebug を使用していました。コードが正常に機能することを発見したのは、jsfiddle を使用しているときにそれらをボタンに変換することだけでした (ID を削除する際に発生した男子生徒のエラーは別として... 助けてくれてありがとう!)。Firebug はレポートを更新しておらず、コードが正常に動作しているにもかかわらず、無効になっていないフィールドが無効になっていることをまだ伝えていたことが判明しました。それは少しイライラします - 私の午後全体が Firebug バグで無駄になりました! :)
気にしないでください-すべて修正されました:)