如何在jquery中动态创建带有单选按钮的文本框

时间:2013-01-29 06:06:55

标签: php javascript html jquery-ui

当我点击按钮时,会使用文本框和单选按钮创建一个新行。但是,当单击一行中的单选按钮时,则取消选择其他行的其他单选按钮。

但即使我点击其他单选按钮,我也想保持单选按钮处于选中状态。

这是我的代码:

<html>
<head>   
    <title>Add More Elements</title>
    <script src="../practice/jquery.min.js"></script>
    <script>
        $(document).ready (function () {
            $('.btnAdd').click (function () {       
                $('.buttons').append('<div><input type="text" name="txt">M<input type="radio" id="m" name="gender">F<input type="radio" id="f" name="gender"><input type="checkbox" name="txt"><br></div>'); // end append

            }); // end click                

        }); // end ready
    </script>
</head>
<body>
    <p>This Is Create Textboxs Dinamically </p>
    <div class="buttons">
         <table><tr><td>Name:</td><td>Gender:</td><td>Choice:</td><td><input type="button" class="btnAdd" value="Click Me To Create TextBox"><br></td></tr>
       <tr> <td><input type="text" name="txt"></td><td>M<input type="radio" id="m" name="gender">F<input type="radio" id="f" name="gender"></td><td><input type="checkbox" name="txt"></td><td></td> </tr>
        </table>     
    </div>
</body>
</html>

6 个答案:

答案 0 :(得分:1)

如果单击相同按钮时无法取消选择单选按钮,您可以使用复选框。

答案 1 :(得分:0)

如果单选按钮具有相同的名称,则它们将相互取消选择。尝试为每组单选按钮分配不同的名称

M<input type="radio" id="m" name="gender[0]">
F<input type="radio" id="f" name="gender[0]">

M<input type="radio" id="m" name="gender[1]">
F<input type="radio" id="f" name="gender[1]">

答案 2 :(得分:0)

你的收音机都是同名的。

您可以通过添加索引键将它们成对分组

 <input type='radio' name='grouping[1]' />
 <input type='radio' name='grouping[1]' />
 <input type='radio' name='grouping[2]' />
 <input type='radio' name='grouping[2]' />

答案 3 :(得分:0)

你为单选按钮指定了相同的名称,虽然它们的ID是唯一的,但它们具有相同的名称,因此要么使用不同的名称,要么使用复选框

答案 4 :(得分:0)

您正在附加单选按钮和输入文本,并使用相同的名称和ID id="m"。在页面控件中不能有相同的ID。尝试为它们分配不同的2个ID。

var count=0;
 $(document).ready (function () {
            $('.btnAdd').click (function () {  
count++;     
                $('.buttons').append('<div><input type="text" name="txt">M<input type="radio" id="m"+count+" name="gender">F<input type="radio" id="f" name="gender"><input type="checkbox" name="txt"><br></div>'); // end append

            }); // end click                

        }); // end ready

在ID中使用count。

答案 5 :(得分:0)

因为所有单选按钮都具有相同的名称属性,它们都属于同一组。你必须通过给每个组一个唯一的id来使每个组都是唯一的,例如用一个正在运行的数字来识别行本身......

HTML:

</head>
<body>
    <p>This Is Create Textboxs Dinamically </p>
    <div class="buttons">
         <table><tr><td>Name:</td><td>Gender:</td><td>Choice:</td><td><input type="button" class="btnAdd" value="Click Me To Create TextBox"><br></td></tr>
       <tr> <td><input type="text" name="txt"></td><td>M<input type="radio" id="m" name="gender">F<input type="radio" id="f" name="gender"></td><td><input type="checkbox" name="txt"></td><td></td> </tr>
        </table>


    </div>
</body>

JS:

$(document).ready(function () {
    var rowCount = 0;
    $('.btnAdd').click(function () {
        $('.buttons').append('<div id="row"' + rowCount + '><input type="text" name="txt">M<input type="radio" id="m" name="genderForRow"' + rowCount + '>F<input type="radio" id="f" name="genderForRow"' + rowCount + '><input type="checkbox" name="txt"><br></div>'); // end append
        rowCount++;
    }); // end click                

}); // end ready

请参阅小提琴link here...