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 に答える