我在ASP.Net中有一個對話框,c#應用程序。這個對話框有一個文本框。當我選擇保存時我想調用一個來自C#的函數進行一些驗證在數據庫中,然後在javascript/jquery中得到結果。如果插入的值爲true,我想關閉對話框以保持打開狀態,但是我無法在c#函數中接收到true後關閉對話框。下面是代碼:從javascript/jquery中調用ac#方法並得到結果
ASCX:
<div id="popup" title="Choose Delegate">
<label>Delegate<label><input type="textbox" value="" name="inputD" id=="inputD"/>
</div>
的Javascript:
$('#btnAdd').click(function(e){
$('#divPopup').slow("show");
$('#divPopup').dialog({
height:150,
width:300,
modal:true,
buttons:{
"close":function(){$(this).dialog("close");}
"save":function(){
var obj=document.getElementid("inputD");
$.ajax({
type: "POST",
url: "add.aspx/check",
data: "{delegate: '" + obj.Value+"'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
rez= "OK";
$(this).dialog("close");
},
failure: function() {alert("FAIL"); }}); }
});
}
C#:
[WebMethode]
public static Boolean check(string delegate)
{
.....
return true;
}
C#梅索德返回corect值。
我也試試這個:
$('#btnAdd').click(function(e){
$('#divPopup').slow("show");
$('#divPopup').dialog({
height:150,
width:300,
modal:true,
buttons:{
"close":function(){$(this).dialog("close");}
"save":function(){
var obj=document.getElementid("inputD");
var rez ;
$.ajax({
type: "POST",
url: "add.aspx/check",
data: "{delegate: '" + obj.Value+"'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
rez= "OK";
},
failure: function() {alert("FAIL"); }
});
if (rez="OK")
$(this).dialog("close");
}
});
但它不會看到在這種情況下,蘇亞雷斯值。
謝謝!
我修改後的代碼使用Ajax: – user1577242
我解決,我必須在ajax代碼之前聲明一個變量var dlg = $(this);然後在成功之後我編寫dlg.dialog(「close」); – user1577242