我有一個腳本,從名爲防護面板的div容器中抓取輸入文本字段。 我正在做一個ajax後調用這個文本字段在後端進行檢查。 如果一個人輸入正確的密碼,那麼我們取消隱藏另一個div容器面板。Jquery ajax後返回數據,未捕獲ReferenceError:數據未定義
<script type="text/javascript">
$("#protectivepanel").submit(function(event) {
$.ajax({
type: "POST",
url: "https://stackoverflow.com/users/trial_signup_validation",
data: $("#protectivepanel").serialize(),
success: function(data){
console.log('data request succeeded');
return data
}
});
event.preventDefault()
});
$(document).ready(function(){
$("#the_submit_button").click(function(event){
event.preventDefault();
console.log('event.preventDefault');
if (data.success){
console.log('data');
$("#protectivepanel").hide()
$("#salespanel > div").removeClass("hide")
}
else {
$("#protectivepanel").show()
}
});
});
</script>
這裏是與
def trial_signup_validation
@password = params['password']
if @password == 'sales'
render :json => { "success" => "true" }
else
render :json => { "success" => "false" }
end
end
檢查方法,現在我想將它傳回的JSON數據,如果它成功了,然後我們取消隱藏在腳本面板。
我的鉻控制檯有這個當我輸入我的文本框中輸入「銷售」,並點擊提交
Uncaught ReferenceError: data is not defined
這裏是我的形式,如果需要
<div class="container" id="protectivepanel">
<form role="form">
<div class="form-group">
<label for="representativepassword">Representative's Password</label>
<input type="text" class="form-control" id="representativepassword" placeholder=" Enter Password">
<button type="submit" class="btn btn-default" id="the_submit_button">Submit</button>
</div>
</form>
</div>
我不明白,如果我我正確地做回調。我的服務器日誌沒有顯示ajax post調用。我如何知道我獲得了正確的返回數據?
你不能從異步函數中'返回數據'。您需要使用回調或承諾界面。 – Andy