2016-04-24 142 views
0

我有14行5个td单元格。每一个都是一个单选按钮。我希望用户能够单击表格单元格中的任意位置以选择其单选按钮。每一行由此产生:onClick表格单元格选择单元格内的单选按钮

   @for (int i01 = 1; i01 <= 5; i01++) { 
       <td id="tablecellradiobutton" onMouseover="this.bgColor='88,150,183'" onMouseout="this.bgColor='white'" onclick="@('Q01' + i01).checked = true"> 
        @Html.RadioButton("Q01", i01, Q01 == i01.ToString(), new { id = "Q01" + i01 }) 
       </td> 
       } 

然而,我的onClick是下降了,给我的错误:

这确实应该是该死的简单没有一个JavaScript(或jQuery的)做功能,但我认为我已经放弃了需要一个。但有人可以帮我纠正我的代码吗?

回答

1

我不能纠正现有的代码,但你将不得不thesame ID的多个实例:

<td id="tablecellradiobutton"... 

你需要为每个TD各自的ID - 可能追加TR和TD指数到现有的ID将是去的。

我会使用jQuery并使用find()获取td内被点击的输入并将其checked属性设置为true。请注意document.on的使用,这将允许动态添加内容以及静态内容。不要忘了$(document).ready ...如果你还没有它。

$(document).on('click','td',function(){ 
    $(this).find('input [type="radio"]').prop('checked',true) 
    }); 
+0

感谢您的反馈gavgrif。我已经按照你的建议做了,并且使每个表格单元格的id唯一(也将'tablecellradiobutton'更改为我的css中的类),但是我认为我发现了一个更容易解决导致错误的问题的解决方案。我更改了onClick,通过交换单引号和双引号,因此我的C#Razor代码中的字符串(本例中为“Q01”)包​​含在双引号中,以符合C#规则和整个onClick代码包含在单引号中,这在HTML中是完全可以接受的。 –