javascript 验证 当一个radio选项选择时后面文本框为必填

<inputtype="radio"name="test"value="Yes"id="r1"checked="checked"/>Yes<inputtype="radi... <input type="radio" name="test" value="Yes" id="r1" checked="checked" /> Yes
<input type="radio" name="test" value="No" id="r1" checked=""/> No
<input type="text" name="times" id="times/>(1~10)
当选yes时文本框为必填,选No时为空,这个要怎么验证?
展开
 我来答
百度网友b256e77
2010-08-09 · 超过19用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:46.9万
展开全部
看了你的问题,我有几点意见
1、建议你以后创建html元素的时候,name属性和id属性尽量保持一致,除非特殊情况,这个是编码规范
2、写代码的时候尽量写全,比如你的id="times/>(1~10)这里少了一个上引号,如果别人写的代码总是这样马虎,让你改,你要疯掉的
3、按照你的意思是想用一个选择框来控制文本的输入,这里有2种方案的,第一种是用1个checkbox比你上面用2个radio要实用很多,很多时候要考虑合理性和客户体验;如果你想选不同的radio,而要用户做不同的事情,比如选几种情况需要填几种不同的内容就用radiogroup来做
代码如下:

<h3>使用checkbox<h3/>
<div>是否测试:<input type="checkbox" name="test" id="test" checked="checked" /></div>
<div><input type="text" name="times" id="times" /></div>
<div><input type="button" value="提交" onclick="checkdata();"/></div>
<h3>使用radiobox<h3/>
<div>是否测试:<input type="radio" name="A1" id="A1" value="1" checked/>是 <input type="radio" name="A1" id="A1" value="2" />否</div>
<div><input type="text" name="testb" id="testb" /></div>
<div><input type="button" value="提交" onclick="checkradio();"/></div>
<script language="javascript">
<!--
function checkdata() {
if (test.checked && times.value=="") {
alert("文本框必须输入");
}
}
function checkradio() {
for(i=0;i<A1.length;i++) {
if(A1[i].checked==true && A1[i].value==1) {
alert("文本框必须输入");
return;
}
}
}
//-->
</script>
司梓韩馀Y2
2010-08-09 · TA获得超过158个赞
知道答主
回答量:153
采纳率:0%
帮助的人:153万
展开全部
var sel = $(":radio[name='test']:checked").val();
if(sel === "Yes"){
//验证是否为空,不知道你要按钮来判断还是失去焦点事件判断
}
else{
$("#times").val("");
}

还有,2楼的getElementById("r1")是取不到的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
王振林WZL
2010-08-09 · TA获得超过133个赞
知道答主
回答量:41
采纳率:0%
帮助的人:48万
展开全部
Android中是:
在yes中设置text.setEnable=(true); 文本框能操作(填)。
在NO中设置text.setEnable=(false); 文本框就不能编辑了。
至于文本的内容你可以通过text.setText();设置。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ershiriyue
2010-08-09
知道答主
回答量:22
采纳率:0%
帮助的人:0
展开全部
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
function check(){
var array = document.getElementsByName("test");
var times = document.getElementById("times").value;

for(var i = 0 ; i<array.length;i++){
if(array[i].value=="Yes"&&array[i].checked==true){
if(times==null||times==""){
alert("文本框为必填");
return;
}else if(timesFormat(times)==true){
alert("内容正确!");
return;
}else{
alert("内容格式不正确!");
return;
}
}else if(array[i].value=="No"&&array[i].checked==true){
document.getElementById("times").value = "";
return;
}
}
}

function timesFormat(s){
var pattern=/^([1-9]|(10))$/;
if(pattern.test(s)){
return true;
}else{
return false;
}
}
//-->
</SCRIPT>
</HEAD>

<BODY>
当选yes时文本框为必填,选No时为空,这个要怎么验证?
<input type="radio" name="test" value="Yes" id="r1" checked="checked" /> Yes
<input type="radio" name="test" value="No" id="r1" checked=""/> No
<input type="text" name="times" id="times"/>(1~10)
<INPUT TYPE="button" value="test" onclick="check();">
</BODY>
</HTML>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tywandd
2010-08-09 · TA获得超过192个赞
知道答主
回答量:152
采纳率:0%
帮助的人:94.6万
展开全部
if(document.getElementById("r1").checked==true){
if(document.getElementById(times).value==""){
alert("你选择了YES,请在文本框输入值!");
return;
};
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式