2009-03-15 11 views
0

私は応答値を取得したいが、ボタンをクリックすると応答がない。 asp.netでフォームを送信しないのはなぜですか?フォームデータを送信する方法asp.netでjqueryフォームを使用しますか?

マイコード:

 
<script type="text/javascript"> 
$(document).ready(function() { 
var options = { 
     target:  '#htmlTarget', 
     dataType :  'json', 
     url :  'Response.aspx', 
     type :  'post', 
     beforeSubmit: showRequest, 
     success:  function(msg){ alert(msg.txt + '\n\n' + msg.item); } 
}; 
$('#myForm1').ajaxForm(options); 

}); 

function showRequest(formData, jqForm,options) { 
    return true; 
} 

$.fn.serializeNoViewState = function() 
{ 
    return this.find("input,textarea,select,hidden").not("[type=hidden][name^=__]").serialize();  
} 

</script> 
 
<form id="myForm1" runat="server"> 
<div id="htmlTarget"></div> 

<input type="text" name="txt"> 
<br> 
<input type="radio" name="item" value="A">A 
<input type="radio" name="item" value="B">B 
<input type="radio" name="item" value="C">C 
<input type="radio" name="item" value="D">D 
<br><br> 
<input type="submit" name="submitbtn" value="submit"> 

</form> 

Response.cs

 
public partial class Response : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     Response.Expires = -1; 
     if (Request.Form["txt"] != null && Request.Form["item"] != null) 
      Response.Write("{txt: '" + Request["txt"] + "',item: '" + Request["item"] + "'}"); 

    } 
} 

答えて

0

、それが原因でID-マングリングのだろうか? ASP.NETは、runat = "server"でタグのIDを自由に変更できると感じています。生成されたHTMLを確認し、フォームのIDを確認してください。

この特定のケースを解決するには、runat = server以外のラッピング要素をフォームに追加し、そのフォームを対象にしてフォームをターゲットにすることができます。

<div id="myform_wrapper"> 
    <!-- your form here --> 
</div> 

$("#myform_wrapper form") 
でそれをターゲット
関連する問題