2011-08-13 84 views
4

在我的代碼我有一個JSON序列字典,像這樣:設置表單輸入

{ BackgroundColor="F4F4F4", ShowTitle=true, NumberToShow=10} 

我需要設置匹配的表單字段(使用屬性密鑰)的值。

這裏是我當前如何做:

function applyPreset(preset) { 
     for (var prop in preset) { 
      var $container = $("div#attribute-" + prop); 
      $("input", $container).val(preset[prop]); 
     } 
    } 

這工作正常的文本框,但顯然對無線電覆選框或選擇列表不起作用。

我想知道是否有任何聰明的功能在jQuery做到這一點,或者我應該循環每個輸入,檢查它的類型,並相應地設置值?

+0

所以看來答案是有效地檢查每個輸入類型。恥辱。 –

回答

3

請試試這個:

$(":radio", $container).attr('checked',preset[prop]); 
$("select", $container).val(preset[prop]).change(); 

的複選框

$(':checkbox').attr('checked', true); 

OR

$(':checkbox').prop('checked', true); 

應該工作。

+0

該複選框似乎不適用於真/假值。 –

+0

現在,這對我來說是個問題,問題在於演員。這是正確的方法==>'if(typeof presetValue ==「boolean」){(「:checkbox」,$ container).attr(「checked」,Boolean(presetValue)); }' –

+0

@在這種情況下,您的presetValue是什麼。他們喜歡真/假還是1/0或別的東西。 – thecodeparadox