我正在尝试用我的形式做两件事之一。
如果传入新模型实例,则禁用所有字段,然后在检查项目时对用户输入作出反应。
启用/禁用传入的现有模型中定义的字段。
所有的rails变量都被正常传递了..我的jquery就好了。
我的Jquery看起来像这样
$( document ).ready(function() {
var shipping = function() {
if($(".<%= type %>-check").is(':checked')) {
$('.<%= type %>').prop( "disabled", false );}
else{$('.<%= type %>').prop( "disabled", true );}
}
var free = function() {
if($('.free-check').is(':checked')) {
$('.free-amount').prop( "disabled", false );}
else{$('.free-amount').prop( "disabled", true );}
}
if <%= shipping_shop.shipping_speed %> == 0 {
$('.free-amount').prop( "disabled", true );
$('.<%= type %>').prop( "disabled", true );
}
else {
shipping();
free();
}
$('.<%= type %>-check').on('change', shipping);
$('.free-check').on('change', free);
});
我想要的是禁用shipping_speed == 0
字段,这意味着尚未设置商店并启用表单以响应用户输入。否则,我希望表单能够反映数据库中的内容。感谢
答案 0 :(得分:1)
我相信您需要围绕if
条件
if (<%= shipping_shop.shipping_speed %> == 0) {
$('.free-amount').prop( "disabled", true );
$('.<%= type %>').prop( "disabled", true );
}
else {
shipping();
free();
}
我也使用.removeProp()
来启用输入,但这可能只是一种编码风格选择。
$('.free-amount').prop('disabled', 'true');
$('.free-amount').removeProp('disabled');