动态生成单选按钮名称?

时间:2014-04-29 05:02:08

标签: jquery html knockout.js

我正在进行foreach循环,因为我有一个如下所述的单选按钮。

我的代码如下:

@section Scripts {

  <script type="text/javascript" src="@Url.Content("~/Scripts/ViewModel/LeadQualification.js")"></script>
}


    <div style="width: 1100px; height: 700px;" class="container">
        <div style="width: 1100px; height: 110px; background-color: burlywood">
            <table>
                <tr>
                    <td style="width: 400px; height: 110px; background-color: burlywood;" align="left">
                        <h3>Qualification Factor</h3>
                    </td>
                    <td style="width: 400px; height: 110px; background-color: burlywood" align="center">
                        <h3>Score</h3>
                    </td>
                    <td style="width: 400px; height: 110px; background-color: burlywood" align="center">
                        <h3>Comment</h3>
                    </td>
                </tr>
            </table>
        </div>
        <div style="width: 1100px; height: 580px; border: 1px solid; overflow-x: scroll; overflow-y: scroll;" >       
                          <table>
                                <tr>
                                    <td style="width: 200px; height: 50px;" align="center"></td>
                                    <td style="width: 200px; height: 50px;" align="center">
                                        <h4>Negative</h4>
                                    </td>
                                    <td style="width: 200px; height: 50px;" align="center">
                                        <h4>Neutral</h4>
                                    </td>
                                    <td style="width: 200px; height: 50px;" align="center">
                                        <h4>Positive</h4>
                                    </td>

                                </tr>
                            </table>
            <table>              
                <tbody data-bind="foreach: leadqualificlist">                     
                    <tr>

                        <td style="width: 250px; height: 130px;"> 

                          <h4 data-bind="text: $data.LeadQualifition"></h4>                       
                        </td>
                        <td style="width: 580px; height: 80px;">

                            <table>
                                <tr>
                                    <td style="width: 210px; height: 50px;" align="center">

                                        <h4 data-bind="text: $data.Negativescore" 0-1-2-3>
                                            <br />
                                            </h4>
                                    </td>
                                    <td style="width: 210px; height: 50px;" align="center">
                                        <h4 data-bind="text: $data.Neutralscore" 4-5-6>
                                            <br />
                                            </h4>
                                    </td>
                                    <td style="width: 210px; height: 50px;" align="center">
                                        <h4 data-bind="text: $data.Positivescore" 7-8-9>
                                            <br />

                                            </h4>
                                    </td>
                                </tr>


                                <tr>
                                    <td style="width: 210px; height: 50px;" align="center">


                                        <input type="radio" style="width: 20px;  height: 20px;" name="grp"  value="0" data-bind="checked:Scoreschk" />
                                        <input type="radio" style="width: 20px; height: 20px;"  name="grp"  value="1" data-bind="checked:Scoreschk"  />
                                       <input type="radio" style="width: 20px; height: 20px;"  name="grp" value="2"  data-bind="checked:Scoreschk" />
                                        <input type="radio" style="width: 20px; height: 20px;" name="grp"   value="3" data-bind="checked:Scoreschk" />
                                    </td>
                                    <td style="width: 210px; height: 50px;" align="center">
                                       <input type="radio" style="width: 20px; height: 20px;" name="grp"  value="4" data-bind="checked:Scoreschk" />
                                      <input type="radio" style="width: 20px; height: 20px;"  name="grp" value="5" data-bind="checked:Scoreschk" />
                                        <input type="radio" style="width: 20px; height: 20px;"  name="grp"  value="6" data-bind="checked:Scoreschk" />

                                    </td>
                                    <td style="width: 210px; height: 50px;" align="center">
                                       <input type="radio" style="width: 20px; height: 20px;" name="grp"  value="7" data-bind="checked:Scoreschk" />
                                       <input type="radio" style="width: 20px; height: 20px;" name="grp"  value="8" data-bind="checked:Scoreschk" />
                                       <input type="radio" style="width: 20px; height: 20px;" name="grp" value="9" data-bind="checked:Scoreschk" />

                                    </td>

                                </tr>


                            </table>
                        </td>
                       <td>
                            <textarea style="width: 300px; height: 110px;" data-bind="value: $data.Commenttext">Text Box
                            </textarea>

                        </td>
                    </tr>                                 
                </tbody>




            </table>

            <table style="width: 100%">
                <tr>
                    <td></td>
                    <td></td>
                    <td align="center">

                         @*<button data-bind="click :$root.create"  style="background-color:burlywood">Save</button>*@
                        <input type="submit" title="Save" value="Submit" data-bind="click:$root.create" style="background-color: burlywood" />
                        <input type="submit" title="Save" value="Next Stage" style="background-color: burlywood" />
                    </td>
                </tr>

            </table>
        </div>
    </div>

iSSUE这里是我想要一个基于行的单选按钮分组。如果我有一个静态名称,即name =&#34; grp&#34;当我选择其他选项时,其他选项生效。

所以我想分配一个动态名称?在这种情况下,有没有更适合我的替代方案。

您的努力表示赞赏 此致

5 个答案:

答案 0 :(得分:1)

您希望一个td下的辐射按钮属于同一组 要实现它,您可以将id分配给td并将其附加到单选按钮名称。因此,td下的所有广播都将属于同一组,并且不会影响彼此的选择 Fiddle

答案 1 :(得分:1)

尝试下面就可以了。

data-bind='attr: { name: "grp" + $data.Negativescore}'

请尝试以下方法:

<input type="radio" style="width: 20px;  height: 20px;"  value="0" data-bind="checked:Scoreschk, attr: { name: "grp" + $data.Negativescore}" />

答案 2 :(得分:0)

动态附加单选按钮?

使用了jquery ......

  1. 获取单选按钮

     var rbtn = $(':radio[name=" your radio btn name here "]:checked').val();
    
  2. 添加单选按钮

    $('# your div id here').append('<input type="radio" style=.....>' button!! '</input>' );
    
  3. 动态数据 - &gt;使用AJAX

    $.ajax({
            type : "POST",
            url : "your data url here!!",
            dataType : "json",
            success : function(obj) {
            // your cod here  
            },
    
            error: function() {
            // your code hear
            }
    
    }
    
  4. 通过JSON对象添加radio btn

    success : function(obj) {
        $('# your div id here').append('<input type="radio" style=.....>'+obj.(your code here)+'</input>');
    }
    

答案 3 :(得分:0)

这一行应该在表格之外

 <%String day="grp" %>

这一行可以在tbody标签之后

 <%
    for(int i=0;i<3;i++)

    %>

在您的日期中使用此<td id=day<%=i> >

所以你的td Id将是grp0,grp1,grp2等等。

答案 4 :(得分:0)

您可以将值和名称赋予相同的值。

  

name =“0”value =“0”

<td style="width: 210px; height: 50px;" align="center">
                <input type="radio" style="width: 20px;  height: 20px;" name="0" value="0" data-bind="checked:Scoreschk" />
                <input type="radio" style="width: 20px; height: 20px;" name="1" value="1" data-bind="checked:Scoreschk" />
                <input type="radio" style="width: 20px; height: 20px;" name="2" value="2" data-bind="checked:Scoreschk" />
                <input type="radio" style="width: 20px; height: 20px;" name="3" value="3" data-bind="checked:Scoreschk" />
            </td>