0

我有这样的事情:

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 时,都返回了“f”,但是有不同的值,不是吗?当我用js提醒它时,它也给了我所有的“f”

编辑: 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,但它也没有工作

4

3 回答 3

1

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

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

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

阿纳斯

于 2012-11-08T16:14:30.177 回答
-1

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

  1. 您有不允许使用的空间。
  2. “电子邮件”的输入类型仅在 HTML5 中有效。对您来说可能不是问题,但请注意。

所以,尝试这样的事情......

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>';
于 2012-11-08T16:10:13.543 回答
-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 添加到输入标签的末尾。

于 2012-11-08T16:33:49.577 回答