Ajax 函数在 JQuery 追加中调用时不起作用
Ajax function doesn't work when called inside a JQuery append
我在 JQuery 附加中有一个 onChange 函数来调用 ajax 函数。这是我的代码:
var data='<?php echo $data; ?>';
var tambah=1;
var txt=1;
function add_fullboard_dalam_kota(){
function showU(str)
{
if (str=="")
{
document.getElementById(txt).innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById(txt).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","gettujuan5.php?q="+str,true);
xmlhttp.send();
}
$("#fullboard_dalam_kota").append('<tr align="center" valign="middle" bgcolor="#E4E4E4">'
+'<td width="19%" ><input name="penyelenggara[]" type="text" id="'+tambah+'" onchange=showU(this.value)></td>'
+'<td width="19%" ><div id="'+txt+'"><b></b></div>'
+'</td>'
+'<td width="19%" ><input name="jumlah_peserta[]" type="text" id="jumlah_peserta[]"></td>'
+'<td width="19%" ><input name="jumlah_hari[]" type="text" id="jumlah_hari[]"></td>'
+'</tr>')
tambah=tambah+1;
txt=txt+1;
}
var data='<?php echo $data; ?>';
var tambah=1;
var txt=1;
function add_fullboard_dalam_kota(){
function showU(str)
{
if (str=="")
{
document.getElementById(txt).innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById(txt).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","gettujuan5.php?q="+str,true);
xmlhttp.send();
}
$("#fullboard_dalam_kota").append('<tr align="center" valign="middle" bgcolor="#E4E4E4">'
+'<td width="19%" ><input name="penyelenggara[]" type="text" id="'+tambah+'" onchange=showU(this.value)></td>'
+'<td width="19%" ><div id="'+txt+'"><b></b></div>'
+'</td>'
+'<td width="19%" ><input name="jumlah_peserta[]" type="text" id="jumlah_peserta[]"></td>'
+'<td width="19%" ><input name="jumlah_hari[]" type="text" id="jumlah_hari[]"></td>'
+'</tr>')
tambah=tambah+1;
txt=txt+1;
}
但显然 onchange 函数不起作用,因为它不返回 ajax 值。我的代码有什么问题?
问题是您在 showU
方法中使用了全局变量txt
,因此 txt 始终会指向页面中不存在的id
。
var data = '<?php echo $data; ?>';
var tambah = 1;
var txt = 1;
function showU(str, txt) {
if (str == "") {
document.getElementById(txt).innerHTML = "";
return;
}
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById(txt).innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "gettujuan5.php?q=" + str, true);
xmlhttp.send();
}
function add_fullboard_dalam_kota() {
$("#fullboard_dalam_kota").append('<tr align="center" valign="middle" bgcolor="#E4E4E4">' + '<td width="19%" ><input name="penyelenggara[]" type="text" id="' + tambah + '" onchange="showU(this.value, ''' + txt + ''')"></td>' + '<td width="19%" ><div id="' + txt + '"><b></b></div>' + '</td>' + '<td width="19%" ><input name="jumlah_peserta[]" type="text" id="jumlah_peserta[]"></td>' + '<td width="19%" ><input name="jumlah_hari[]" type="text" id="jumlah_hari[]"></td>' + '</tr>');
showU();
tambah = tambah + 1;
txt = txt + 1;
}
注意:使用 jQuery.ajax() 而不是使用本机 ajax
在这种情况下,由于您正在加载 html 片段使用
function showU(str, txt) {
if (str == "") {
$('#' + txt).empty()
return;
}
$('#' + txt).load("gettujuan5.php?q=" + str);
}
相关文章:
- javascript函数调用不起作用
- Ajax调用不起作用
- 函数调用不起作用
- IE9+IE10 AJAX调用不起作用
- 科尔多瓦脸书登录FB.api调用不起作用
- 为什么这个javascript函数调用不起作用
- Ajax和jQuery对$Ajax url的调用不起作用
- firefox扩展对$.ajax的调用不起作用
- jQuery函数调用不起作用
- AJAX调用不起作用,因为它继续转到链接
- 表单提交前的Ajax调用不起作用
- 通过引用进行的Javascript调用不起作用
- 使用 ajax 的 API 调用不起作用
- Ajax 调用不起作用此代码中的问题
- JQuery .ajax() 函数调用不起作用,但成功方法运行
- JavaScript中的递归调用不起作用
- JQuery REST 调用不起作用
- 完整日历 GetEvents() 方法调用不起作用
- 从提交输入对函数的单击调用不起作用
- 下拉元素选择和 JS 调用不起作用