通过值调用input元素而不是javascript方法中元素的id或名称

时间:2011-02-22 05:48:22

标签: javascript jquery

我想禁用值= 1的textarea onclick并通过单击单选按钮值= 0启用它。但是我有一个条件,我必须使用相同的名称和id两个单选按钮。我有现有的代码像这样..有任何可能性,我可以通过他们的值在js方法中调用单选按钮。

HTML:

<input type="radio" name="disabilityflag" id="disabilityflag" value="0"/>    
<span>Yes</span>            

<input type="radio" name="disabilityflag" id="disabilityflag"  value="1"/>
<span>No</span>

<textarea type="text" name="disabilityspecification" id="disabilityspecification">     
</textarea>

使用Javascript:

$('#disabilityflag').click(function(){
    checkeddisabilityclick();
});

function checkeddisabilityclick(){
    $('#disabilityspecification').attr("disabled",true);
    $('#disabilityspecification').addClass('disabled');
}

$('#disabilityflag').click(function(){
    $('#disabilityspecification').removeAttr("disabled"); 
    $('#disabilityspecification').removeClass('disabled');
});

if($('#disabilityflag').attr('checked')) {
    checkeddisabilityclick();
}

3 个答案:

答案 0 :(得分:1)

您可以在事件处理函数中使用this.value属性。

$('#disabilityflag').click(function(){
alert( this.value) // will correspond to the value of the element that triggered the event.
checkeddisabilityclick();
});

答案 1 :(得分:0)

由于你使用的是jquery,你可以这样做:

$('#disabilityflag[value="0"]').click(function () {
    // Yes was clicked
});

$('#disabilityflag[value="1"]').click(function () {
     // No was clicked
});

有一个正在运行的示例here

更新

我更喜欢Gunner的解决方案,因为它只放置了一个事件处理程序,但如果您只想在其中一个上使用事件处理程序,那将是如何做到的。

答案 2 :(得分:0)

ID标签应该是唯一的。只需将ID重命名为disabilityflag_no和disabilityflag_yes,并向其添加两个点击事件。

另一方面,你可以做(​​用名称值替换id)

$('[name="disabilityflag"]').click(function(){
    alert( this.value) // will correspond to the value of the element that triggered the event.
    checkeddisabilityclick();
});