У меня есть кнопка, которая вызывает функцию javascript после вызова события onclick. Эта функция проверяет мои записи, а затем создает объект ajax для заполнения моей таблицы информации. Кажется, все работает нормально, кроме случаев, когда я добавляю этот код:
echo "$(document).ready(function() { $(\"#newDate\").submit( function() {
ValidateForm('$ID');
} ); });";
ValidateForm () - это та же функция, что и вызовы событий onclick, за исключением того, что она не работает без пустого предупреждения, отправленного после отправки запроса ajax. Посмотрев вокруг на SO, я обнаружил похожую проблему . Я понимаю проблему в этом конкретном посте, за исключением того, что я делаю, я не могу решить свою проблему. Я попытался переместить отправку в мою анонимную функцию после того, как было установлено успешное состояние готовности, и даже попытался установить мой последний параметр в моем методе open на -false-. (Что я знаю, не является правильным решением, но оно все равно не сработало.
Так почему же все отлично работает с событием onclick, а не с методом отправки jquery?
function ValidateForm(CQID)
{
var dt=document.newDate.uinput;
if (isDate(dt.value)==false){
dt.focus();
return false;
}
populateDateTable(dt.value, CQID);
}
function populateDateTable(dateString, CQID)
{
//After recieving a date and checking validity populate a table of proceeding dates.
var xmlhttp = createReq();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("BoxCarCapacityDates").innerHTML= xmlhttp.responseText;
}
}
xmlhttp.open("GET",'populateDateTable.php?dateString='+dateString+'&CQID='+CQID, true);
xmlhttp.send();
}
Заранее спасибо. (Переключение все в JQuery медленно ..)
echo "$(document).ready($(function()
{
$('#newData').click(function()
{
var dt=document.newDate.uinput;
if (isDate(dt.value)==false)
{
dt.focus();
return false;
}
$.get(
{
url: 'populateDateTable.php',
data: 'dateString='+dateString+'&CQID='+CQID,
success: function()
{
$('#BoxCarCapacityDates').html(response);
}
});
});
});
); </script>";
Приведенный выше код был представлен в качестве ответа, но, похоже, он не работает вообще.