[英]Calling a function from if block in success
各位程序員大家好。 我是jquery ajax的新手。 我如何從if塊調用函數checkreturn()或是否可以在成功之外訪問msg(如果是),那么請告訴我。 我需要它,因為只有在條件成立的情況下,我才必須啟用后續的文本框。 這是我的代碼。謝謝您的時間和答復。Rajesh。
<script type="text/javascript" >
function checkreturn() {
document.getElementById("txtAns").removeAtrribute("disabled");
}
function cQtn(e){
var uname= $("#<%=Username.ClientID%>").val();
var sq=$("#<%=SecQuest.ClientID%>");
var sqtn = $("#<%=SecQuest.ClientID%> option:selected").text();
var sans=$("#txtAns");
var msgbox = $("#Dstatus");
$.ajax({
type: "POST",
url: "forgotpassword.aspx/CheckValidSQtn",
data: "{'uname':'"+uname+"','args':'"+sqtn+"'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
if (msg.d == 'Available') {
sq.removeClass("notavailablecss");
sq.addClass("availablecss");
msgbox.html('<img src="proj_mages/a.png"> <font color="Green"> Valid </font>');
//how do i call from here??
}
else {
sq.removeClass("availablecss");
sq.addClass("notavailablecss");
msgbox.html(msg.d);
}
}
});
}
</script>
您的checkreturn
函數中有一個錯字。 您要使用removeAttribute
,而不是removeAtrribute
(double t
,而不是double r
)。
另外,您可以使用jQuery
函數:
function checkreturn(){
$('#txtAns').prop('disabled',false);
}
,而不是本機DOM
函數( document.getElementById
, setAttribute
):
不知道為什么正常方式不起作用,但是您可以嘗試強制瀏覽器執行該操作,
function checkreturn(){
document.getElementById("txtAns").removeAtrribute("disabled");
}
成為
window.checkreturn = function(){
document.getElementById("txtAns").removeAtrribute("disabled");
}
然后嘗試通過window.checkreturn();
調用 或checkreturn();
您還可以嘗試以另一種方式嘗試此操作,以便離開函數並嘗試調用window.checkreturn();
如果這些都不起作用,則說明您的函數未進入頁面的window(Global)范圍,請使用Firebug或Inspector並嘗試所有checkreturn();
看你得到什么異常,
如果發現未找到,則未在代碼中向我們顯示某些內容,例如關閉或某些內容
我將進一步研究它,但嘗試將ajax
調用的async
設置為false
:
function checkreturn() {
document.getElementById("txtAns").removeAtrribute("disabled");
}
function cQtn(e) {
var uname= $("#<%=Username.ClientID%>").val(),
sq=$("#<%=SecQuest.ClientID%>"),
sqtn = $("#<%=SecQuest.ClientID%> option:selected").text(),
sans=$("#txtAns"),
msgbox = $("#Dstatus");
$.ajax( {
async: false,
type: "POST",
url: "forgotpassword.aspx/CheckValidSQtn",
data: "{'uname':'"+uname+"','args':'"+sqtn+"'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
if (msg.d == 'Available') {
sq.removeClass("notavailablecss");
sq.addClass("availablecss");
msgbox.html('<img src="proj_mages/a.png"> <font color="Green"> Valid </font>');
//how do i call from here??
} else {
sq.removeClass("availablecss");
sq.addClass("notavailablecss");
msgbox.html(msg.d);
}
}
} );
}
現在,當進行ajax
調用時,腳本的其余部分將等待直到完成為止,而不是等到async
為true
時一切如何繼續。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.