在我的代码中,模式弹出窗口发生在下拉列表的更改事件上。弹出窗口包含一个asp文本框和按钮。我无法在后面的代码中使用文本框值。我当前的代码为该文本框提供了未定义的值。这是代码快照:
我使用avgrund插件进行模态弹出。
<script type="text/javascript">
$(function () {
$('#Content_ddl_RepCountry').change(function () { // popup called on dropdown change enevt
var result = $(this).val();
if (result == "test") {
$(this).avgrund({
showClose: true,
showCloseText: 'CLOSE',
template: $("#modal_div").html(),
open: function () {
var dlg = $('#modal_div').dialog({
});
dlg.parent().appendTo(jQuery("form:first"));
}
});
}
else {
alert('how r');
this.clearAttributes();
}
});
});
</script>
调用ajax函数将文本框值传递给
后面的代码<script type="text/javascript">
function new_Fn() {
$.ajax({
type: "POST",
url: "Defacement.aspx.cs/childBind",
data: {
txt1: $("#test_input").val()
},
contentType: "application/json; charset=utf-8",
dataType: "json",
success: alert('successful' + $('#Content_test_input').value)
});
}
</script>
包含aspx页面上的模态弹出窗口的Div
<div id="modal_div" style="display: none;"> <%--style="display: none;" --%>
<table id="tbl_heading" width="100%" height="100%">
<tr>
<td colspan="2"><span id="heading" class="heading">Add New Country</span></td>
</tr>
<tr>
<td colspan="2"></td>
</tr>
<tr>
<td colspan="2">
<asp:Label ID="test_label" runat="server" Text="Label"></asp:Label>
</td>
</tr>
<tr>
<td class="P_td_label"><span id="test_span">Input1</span></td>
<td>
<asp:TextBox ID="test_input" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td colspan="2">
<asp:Button ID="btn_test" runat="server" Text="Save" CssClass="button" OnClientClick="new_Fn(); return false;" OnClick="btn_test_Click" UseSubmitBehavior="false" />
</td>
</tr>
</table>
</div>
包含在ajax函数中调用webmethod的C#代码
[WebMethod]
public static string childBind(string txt1)
{
string res = txt1.ToString();
return res;
}
Any help is appreciated.
答案 0 :(得分:1)
弹出窗口中的文本框是服务器端控件。 所以尝试使用:
$('<%=test_input.ClientID %>').val()
答案 1 :(得分:0)
更改为此。
编辑:请注意数据参数中txt1周围的引号。
$.ajax({
type: "POST",
url: "Defacement.aspx.cs/childBind",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: {"txt1:" + $("#test_input").val()},
success: function(){alert("successful" + $('#Content_test_input').val()); }
});
答案 2 :(得分:0)
您需要将值传递给page.aspx而不是.cs文件,它永远不可访问。
$.ajax({
type: "POST",
url: "Defacement.aspx/childBind",
data: {
txt1: $("#test_input").val()
},