2010-12-10 124 views
0

我有一個測試表單,其中我的單選按鈕有文本和值。單選按鈕值vits jquery

我試圖從標籤從檢查單選按鈕,通過文本隱藏字段名=形式[測試]

這是我的函數:

var levels = $('input[name="form[Button]"]:checked + label').map(function() { 
return $(this).text(); 
}).get(); 

$('input[name="form[test]"]').change(function() { 
($(this).val(levels)); 
}); 

HTML

<input type="radio" id="Button0" value="0" name="form[Button]"> 
<label for="Button0">This item is worth £0</label> 
<input type="radio" id="Button1" value="100" name="form[Button]"> 
<label for="Button0">This item is worth £100</label> 

<input type="hidden" value="" id="test" name="form[test]"> 

但我在jQuery中的改變根本不起作用。

很多感謝您的幫助提前!

大教堂

回答

0
$('input[name="form[Button]"]').change(function() { 
    var level = $('input:radio[name="form[Button]"]:checked + label').text(); 
    $('input[name="form[test]"]').val(level); 
}); 

而且你可以看到一個live demo

+0

標籤的文本不太可能隨着時間而改變,那麼你爲什麼會反覆查詢呢? – aefxx 2010-12-10 08:51:40

+0

這一個完美的作品,謝謝! – Dom 2010-12-10 08:54:54

0

$('input[name="form[test]"]').change(function() { 
($(this).val(levels)); 
}); 

意味着你只需要改變隱藏輸入的值時,它已經被其他的影響而改變。我想你的意思是:

var levels = $('input[name="form[Button]"]:checked + label').map(function() { 
    return $(this).text(); 
}).get(); 

$('input[name="form[test]"]').val(levels); 
1

試試這樣說:

$('input[name="form[Button]"]').each(function() { 
    $(this).data('label', $(this).next('label').text()); 
}); 

$('input[name="form[Button]"]').change(function() { 
    $('input[name="form[test]"]').val($(this).data('label')); 
});