我正在开发一个项目,我想在输入字段中添加单选按钮值。
输入字段是添加名称,单选按钮用于选择性别。默认情况下,它应该是"我的名字"在输入字段上,当用户检查单选按钮时,它应该添加文本"我是{单选按钮值}"。
我设法做了一些,但问题是:
<input type="radio" id="single" name="sex" value="Boy">Boy |
<input type="radio" id="single" name="sex" value="Girl">Girl
<br><br><br><br>
<p></p>
Jquery脚本
function displayVals() {
var a = $("input[type='radio']:checked").val();
var b = "I am a";
var checkedValue = $( "p" ).html( "<b>I am a </b> " + " " + a );
var input = $("input[type='text']");
input.val(input.val() + b + " " + a);
}
$( "input[type='radio']" ).change( displayVals );
displayVals();
链接到小提琴示例
http://jsfiddle.net/ssbrbsfp/2/
感谢您的帮助。
答案 0 :(得分:2)
这是一个工作小提琴:http://jsfiddle.net/ssbrbsfp/6/
为避免重复结果,请不要在其中重新连接input.val:
input.val(b + " " + a);
在填充输入和p:
之前检查值是否未定义if(a != undefined)
{
$( "p" ).html( "<b>I am a </b> " + " " + a );
var input = $("input[type='text']");
input.val(b + " " + a);
}
else
{
$( "p" ).html( "<b>I am a </b> ");
}
在提交前验证:
$(".SubmitButton").click(function () {
if($("input[type='radio']:checked").val() == undefined)
{
alert("You must choose a sex");
return false;
}
});
我把它放在提交按钮上以显示行为,但你应该把它放在表单提交事件中。
答案 1 :(得分:0)
首先在dom上执行函数displayVals();
,但没有选择无线电,因此输入文本将获得未定义的vaule。其次,每次在无线电变化时添加旧值。看看这里:
function displayVals() {
var a = $("input[type='radio']:checked").val();
var b = "I am a";
var checkedValue = $("p").html("<b>I am a </b> " + " " + a);
var input = $("input[type='text']");
//you want to add only the value of radio each time.
input.val(a);
}
$("input[type='radio']").change(displayVals);
//why execute this one on dom ready??
//displayVals();
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" onblur="this.placeholder = 'my name'" onfocus="this.placeholder = ''" placeholder="my name" name="name" id="my name" class="InputText">
<input type="submit" value="Submit" class="SubmitButton">
<br>
<input type="radio" id="single" name="sex" value="Boy">Boy |
<input type="radio" id="single" name="sex" value="Girl">Girl
<br>
<br>
<br>
<br>
<p></p>
<select id="single">
<option>Single</option>
<option>Single2</option>
</select>
&#13;
答案 2 :(得分:0)
好的,有几件事:
从输入文字定义中删除onblur
和onfocus
,placeholder
已经表现得那样。
删除对脚本
displayVals()
的调用
删除input.val重新分配中的input.val() +
要进行验证,您可以将关键字required
添加到input radio
代码的定义中,甚至两者都添加。