2016-04-07 10 views
0

私のフォームで2つのうちの1つを実行しようとしています。モデルとJqueryに基づいて有効または無効にします

  1. 新しいモデルインスタンスが渡された場合は、すべてのフィールドを無効にして、アイテムがチェックされたときにユーザー入力に反応します。

  2. は、渡される既存のモデルで定義されたフィールドを有効/無効にします。

変数は罰金に渡されるすべてのレール...その私のjQueryのthatsはジャッキ。

私の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場合店は、まだ設定されていると、ユーザの入力に反応するフォームを有効にしていないことを意味するフィールドを無効にすることです。それ以外の場合は、フォームにDBの内容を反映させます。おかげ

答えて

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'); 
+0

いいね!それはまさにそれ.. .. Ryan – ToddT

関連する問題