带有所有相同值的html radio复选框

时间:2012-11-08 15:52:32

标签: php javascript html mysql

我有这样的事情:

form.innerHTML='<form name="reg" >
    Register:<br/>User Name: <input name="un"><br/>
    Password: <input name="pw" type="password"><br/>
    E-mail: <input type="email" name="email" ><br/> 
    Sex:<br/><input type="radio" id="sxf" name="sex" value="f"> <label for =  "sxf">Female</label><br/>
             <input type="radio" id="sxm" name="sex" value="m" checked = "checked" >
             <label for = "sxm">Male</label><br/>
             <input type="button" value="Register" onClick="accnew()"> 
</form>';

但是,当我将表单发送到MYSQL时,所有表单都返回了&#34; f&#34;,但是它们有不同的价值,不是吗?当我用js提醒它时,它也给了我所有的&#34; f&#34; s

编辑: accnew()js方法:

if (window.XMLHttpRequest){
var xmlhttp=new XMLHttpRequest();
}
else{
var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{..................
xmlhttp.open("GET","new_acc.php?un="+un+"&pw="+pw+"&email="+em+"&group1="+$('[name=sex]').val(),true);
xmlhttp.send();

只是一个xmlHTTPrequest。我试图使用jquery,但它没有工作

3 个答案:

答案 0 :(得分:1)

使用$('[name = sex]')。val()jquery返回第一个找到的对象并提供选择器;所以你还有'f'作为返回值

您必须通过添加':checked'(请参阅http://api.jquery.com/checked-selector/)选择器来更改您的选择器:

      $('input:checked[name="sex"]').val()

答案 1 :(得分:-1)

输出代码的XHTML存在一些问题。 (请注意,我假设您打算将输出设置为XHTML,因为您的中断标记被编码为<br/>。)

  1. 你有空格,不允许这样做。
  2. “电子邮件”的输入类型仅在HTML5中有效。对你来说可能不是问题,但请注意。
  3. 所以,尝试这样的事情......

    form.innerHTML='<form name="reg" action="page.html" method="get">Register:<br/>User Name: <input name="un" /><br/>Password: <input name="pw" type="password" /><br/>E-mail: <input type="text" name="email" /><br/> Sex:<br/><input type="radio" id="sxf" name="sex" value="f" /><label for="sxf">Female</label><br/><input type="radio" id="sxm" name="sex" value="m" checked="checked" /><label for="sxm">Male</label><br/><input type="submit" value="Register" /> </form>';
    

答案 2 :(得分:-1)

正如Shikyo建议的那样,你是在标签的HTML中插入一个标签,所以它应该是这样的:

<form>
<form name="reg"  >Register:

当然这不起作用,您应该获取包含表单的父标记,然后执行:

parent_of_form.innerHTML='
<form name="reg" method="POST" action="somewhere.php" onsubmit="return accnew()">
Register:<br/>
User Name: <input name="un"/><br/>
Password: <input name="pw" type="password"/><br/>
E-mail: <input type="email" name="email" /><br/> 
Sex:<br/>
<input type="radio" id="sxf" name="sex" value="f"/> Female<br/>
<input type="radio" id="sxm" name="sex" value="m" CHECKED/>Male<br/>
<input type="submit" value="Register"/> 
</form>';

我在这里更改了一些标签:

1-我假设您要使用accnew()函数验证表单,因此我将“onsubmit”添加到表单并将“注册”按钮更改为“提交”按钮。这将确保您在提交表单之前使用accnew()函数返回'true'。

2-标签标签并不是真的需要,所以我删除了它们,但如果你想让它们保持良好状态。

3- checked =“checked”不起作用,你必须将CHECKED添加到输入标签的末尾。