Hello其他程序员。我是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>
答案 0 :(得分:2)
您的checkreturn
功能中有拼写错误。您想使用removeAttribute
,而不是removeAtrribute
(加倍t
,而不是加倍r
)。
此外,您可以使用jQuery
个功能:
function checkreturn(){
$('#txtAns').prop('disabled',false);
}
,而不是原生的DOM
函数(document.getElementById
,setAttribute
):
答案 1 :(得分:0)
不确定为什么普通方式不起作用,但你可以尝试强制浏览器应该做什么,
function checkreturn(){
document.getElementById("txtAns").removeAtrribute("disabled");
}
变为
window.checkreturn = function(){
document.getElementById("txtAns").removeAtrribute("disabled");
}
然后尝试通过window.checkreturn();
或checkreturn();
进行呼叫,您也可以尝试另一种方式,这样您就可以离开功能并尝试拨打window.checkreturn();
如果这些都不起作用,它会说你的功能没有进入你的页面的窗口(全局)范围使用Firebug或Inspector并尝试所有checkreturn();
看看你得到什么异常,
如果你找不到你的代码可能是关闭或某些东西
答案 2 :(得分:-1)
我会进一步调查,但尝试async
调用ajax
来设置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
时所有内容的继续。