我是jQuery / Ajax领域的新手,我的小测试功能不起作用。我的页面也很新鲜,任何人帮助我
<script type="text/javascript" >
$(document).ready(function() {
$("#ser_itm").change(function() {
var id=$(this).val();
var dataString = 'id='+ id;
alert(dataString);
$.ajax({
type: "POST",
url: "bar_pull.php",
data: dataString,
cache: false,
success: function(html) {
$("#tbl").html(html);
}
});
});
});
答案 0 :(得分:3)
传递函数,而不是函数调用的结果:
$('.linkDetails').on('click', getDetailsFromServer);
将相同的内容应用于您的AJAX成功回调:
success: postToPage
此外,在将getDetailsFromServer()
函数绑定到事件之前,需要先定义它。在.on('click', ...)
来电之前移动功能声明。
答案 1 :(得分:2)
$('.linkDetails').on('click', getDetailsFromServer);
尝试上面
答案 2 :(得分:2)
因此,我将尝试更清楚地解释这些观点:
您无法访问C:\Users\yah\Desktop\text.txt
。这是server side path,您的javascript在client side上运行。因此,这需要是您可以在浏览器中浏览的路径,例如/pathinURL/text.txt
。如何执行此操作取决于您的托管技术等。
您的回电也是错误的,
$('.linkDetails').on('click', getDetailsFromServer());
&安培;
success: postToPage()
这些将在命中时执行该函数(实际上它实际上绑定了函数结果),而不是在事件发生时。要完成这些工作,您需要删除大括号:
$('.linkDetails').on('click', getDetailsFromServer);
&安培;
success: postToPage
然后将实际函数作为函数指针挂钩,因此实际函数将在您希望它们时触发。
所以你的最终代码如下:
$('.linkDetails').on('click', getDetailsFromServer);
function getDetailsFromServer() {
$.ajax({
type: 'GET',
url: '/someURL/text.txt',
success: postToPage
});
}
function postToPage(data) {
$('.textDetails').text(data);
console.log(data);
}
答案 3 :(得分:0)
浏览器实施的same origin policy会阻止本地文件系统网址...如果网页和文件位于相同的文件夹中,则可能会有效。
请参阅SOP for file URI了解FF