2013-08-18 82 views
0

當用戶點擊一個單選按鈕,我想設置在這個fiddle文本框的值與單擊按鈕單擊的名稱和值。jquery返回點擊事件單選按鈕的名稱和值

我的腳本是:

$(function() { 
    $("#radio").buttonset(); 
    $("radio").click(function() { 
     $("#did").val = ($(this).attr('name') + "=" + $(this).val); 
    }); 
}); 

其中#did是輸入文本框。 但我的代碼沒有這樣做。請幫忙。

回答

1

你正在使用.val()就像一個變量,你不能分配給它。這是一個功能,叫它!

此外,$("radio")查找html標籤<radio>

因此,例如:

$("#did").val(($(this).attr('name') + "=" + $(this).val()));

+1

您實際上可以將值傳遞給'.val()'函數。你不能做'='賦值。 –

+0

謝謝。改變了答案並且工作得很棒。 – RatDon

+1

對不起,忘記了我們正在使用單選按鈕。良好的編輯!很高興它的作品。 –

-1

this是指全球範圍內。您必須改爲使用$(event.target)

如已指出
$("radio").click(function (aEvent) { 
    $("#did").val ($(aEvent.target).attr('name') + "=" + $(aEvent.target).val()); 
}); 
+0

'這個'會工作正常。 – RatDon

+2

'$(this)'並不是指通過jQuery綁定的事件中的全局上下文,而是指觸發事件的元素。 –

1

兩個問題,而這兩者都導致你的代碼到不行:

1)您使用的.val作爲一個屬性,但它是一個功能。因此,你需要這條線

$("#did").val = ($(this).attr('name') + "=" + $(this).val); 

改變

$("#did").val($(this).attr('name') + "=" + $(this).val()); 

2)你要綁定的click事件不存在的元素(<radio>)。您需要將選擇器更改爲input[type='radio']input[name='radio']

這裏是a working jsFiddle它實現這兩個變化。

+0

你能說哪一個的表現很好嗎? 'input [type ='radio']'或'input:radio' – RatDon

+0

'input [type ='radio']'在現代瀏覽器中表現更好。 –

相關問題