2012-07-08 62 views
2

我有一个包含两个单选按钮和一个按钮的表单。我想根据选择的两个单选按钮中的哪一个来更改按钮的值。我的猜测是,使用jQuery比PHP更好,但请让我知道这是否是错误的假设。如何根据单独的一组单选按钮的选择更改按钮的“值”和“ID”

下面是HTML的例子:

<form> 
    <ul> 
    <li> 
    <input type="radio" name="basic" value="basic1"> 
    <label for="basic1">Basic 1</label> 
    </li> 
    <li> 
    <input type="radio" name="basic" value="basic2"> 
    <label for="basic2">Basic 2</label> 
    </li> 
    </ul> 
    <button id="basic1" name="startReg" type="submit" value="basic1">Confirm</button> 
</form> 

总之,我要被替换的按钮ID和价值为准单选按钮被选中的值。所以,如果选择第二个单选按钮,按钮标签将是这样的:

<button id="basic2" name="startReg" type="submit" value="basic2">Confirm</button> 
+3

为什么?单选按钮的值将被提交,为什么复制到按钮? – nnnnnn 2012-07-08 16:06:52

+0

我可以问为什么不使用提交的单选按钮的值? – Dementic 2012-07-08 16:07:58

+0

我这样做是因为单选按钮和按钮将在后续页面上使用,并且预选这些按钮。上面的HTML代表三列之一。当用户选择基本1的单选按钮,然后单击确认时,我希望在下一页中预先选择基本1单选按钮和确认按钮。然后用户将填写后续表格的其他信息。我从上面的两条评论中收集到,我正在以艰难的方式做这件事。 – Ken 2012-07-08 16:26:00

回答

1

只要改变控件的名字,因为它将如果你改变了按钮的值就会发送相同的表单数据:

<form> 
    <ul> 
    <li> 
    <input type="radio" name="startReg" value="basic1" checked="checked"> 
    <label for="basic1">Basic 1</label> 
    </li> 
    <li> 
    <input type="radio" name="startReg" value="basic2"> 
    <label for="basic2">Basic 2</label> 
    </li> 
    </ul> 
    <button id="basic1" name="somethingElse" type="submit">Confirm</button> 
</form> 
3

你可以这样做:

$(':radio').on('change', function() { 

    // this.value for get the id of radio 

    $('button[name=startReg]') 
         .attr('id', this.value) // change id of button 
         .val(this.value);  // update value of button 
}); 

DEMO

但选择radio值将自动提交。

1
$('input:radio').click(function(){ 
    $('button').prop({'id' : $(this).val(), 'value' : $(this).val()}); 
}); 
相关问题