我正在尝试构建一个表单来禁用菜单中用户选择所确定的隐藏字段。在开始时,我可以非常轻松地禁用所有字段,并且当用户选择其他选项时,我可以重新启用特定字段。但是,当用户点击“更改位置”时,我需要能够重新禁用所有字段,但我根本无法使其正常工作!
到目前为止,这是我的代码......我的代码背后的目的可能并不完全清楚,因为为了清晰起见,它进行了大量编辑,但发生了各种其他不相关的事情。我只想说,这就是我需要做的事情:)
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/
修改 我想我已经发现了这个问题。在我的实际代码中,我一直在处理隐藏的字段,而不是按钮字段,所以我无法直接看到我的劳动成果 - 我一直在使用Firebug来确定隐藏字段的禁用条件。它只是通过将它们转换为按钮,同时使用jsfiddle,我发现我的代码工作正常(除了我在删除ID时发生的小学生错误...感谢您的帮助!)。事实证明Firebug没有更新它的报告,并且仍然告诉我,当它们没有时,字段被禁用 - 尽管事实上我的代码工作得很好!这有点令人沮丧 - 我的整个下午浪费在Firebug上! :)
没关系 - 现在全部修好了:)
答案 0 :(得分:3)
问题是您没有ID为changelocation
的元素。添加ID,没关系。
答案 1 :(得分:0)
如果您为包含隐藏字段的表单提供ID,则可以轻松禁用所有隐藏字段:
$("#hiddenFormId input").attr("disabled", true);
答案 2 :(得分:0)
在div中声明一个类,使用jQuery调用它,如下所示
jQuery(“。declariedclassname”)。attr(“disabled”,true);