默认情况下选中标记单选按钮

时间:2015-12-18 22:32:31

标签: javascript jquery

我有一个表单,我试图自动填充单选按钮的值。

content=content+' <label class="radio-inline">';                
content=content+' <input type="radio" name="ip_radio_resp_'+questDetail.qId+'" id="radioYes"  value="Y" onclick="removeFocusOnComment('+questDetail.qId+');showReasonTextBox('+questDetail.qId+')"> Yes';
content=content+' </label>

我正在检查其他某个字段的值,如果我得到所需的响应,我标记为radio btn否则

switch(questDetail.metricsValue){
case 'Y':

    $('#ip_radio_resp_'+questDetail.qId).each(function() {
        $('input:radio[name="ip_radio_resp_'+questDetail.qId+'"]#radioYes').prop('checked',true);
    });
    break;
case 'N' :
    //something......   
break;
default:
    //something
}

我正在使用jquery 1.11.2

但它经常给我错误未定义..我知道这可能是重复的,我尝试了所有其他答案,但不能让这个工作......有人可以帮助!!

提前致谢。

2 个答案:

答案 0 :(得分:0)

每个广播组中都不能有center-justified,因为ID必须是唯一的。请改用id="radioYes"。然后你可以这样做:

class="radioYes"

你不需要使用case 'Y': $('input:radio[name="ip_radio_resp_'+questDetail.qId+'"].radioYes').prop('checked',true); break; ,因为你没有对带有该ID的元素做任何事情(我怀疑你甚至没有那个元素,而且你让$('#ip_radio_resp_'+questDetail.qId).each感到困惑name)。

答案 1 :(得分:0)

我认为你不需要所有这些,你只需要在制作单选按钮时检查

questDetail.metricsValue == 'Y'

然后你需要检查它。

你可以取消所有你创建的开关盒,并以这种方式制作它对你来说更容易。

    content=content+' <label class="radio-inline">';                
    content=content+' <input type="radio" name="ip_radio_resp_'+questDetail.qId+'" class="radiosToBeChecked" id="radioYes'+questDetail.qId+'" checked="'+(questDetail.metricsValue == 'Y') ? 'checked': ''+'" onclick="removeFocusOnComment('+questDetail.qId+');showReasonTextBox('+questDetail.qId+')"> Yes';
    content=content+' </label>';