Я имею в виду проблему, похожую на проблему в этой статье , потому что описанное там решение не работает для меня.
Отправной точкой является HTML-страница (называемая профилем) с вкладками пользовательского интерфейса jQuery:
<div id="tabs"> <ul> <li><a href="#realtab">Foo Bar</a></li> <li><a href="?cmd=changePassword" title="pwd-settings"> <span> Dynamic tab </span> </a></li> </ul> </div>
HTML, отображаемый в DIV :
<form method="post" id="subform" action="http://myhost.com/example.php"> <input type="hidden" name="cmd" value="submitChangedPassword"> <dl> <dt>PWD1</dt> <dd><input type="password" name="password" /></dd> <dt>PWD CHK</dt> <dd><input type="password" name="passwordChk" /></dd> <dt> </dt> <dd><input type="submit" value=" Apply " /></dd> </dl> </form>
Кроме того, я использую следующий сценарий JS (на основе сообщения, связанного во введении):
$('#subform').submit(function() { // catch the form's submit event - should I use the form id? $.ajax({ // create an AJAX call... data: $(this).serialize(), // get the form data type: $(this).attr('method'), // GET or POST url: $(this).attr('action'), // the file to call success: function(response) { // on success.. $('#pwd-settings').html(response); // update the DIV - should I use the DIV id? } }); return false; // cancel original event to prevent form submitting });
Запись отправляется, но поведение зависит от браузера:
IE, Firefox, Opera: правильный контент в DIV, отлично!
Safari, Chrome: правильный контент, но вся страница обновляется с результатами
Пожалуйста, дайте мне знать, что я делаю неправильно. Большое большое спасибо!
ОБНОВЛЕНИЕ 1: DIV с именем pwd-settings создается только интерфейсом вкладки. Обратите внимание, что поведение одного и того же, даже если я добавляю его в HTML (с <div id ="pwd-settings"></div>
).
ОБНОВЛЕНИЕ 2: Я также удалил JavaScript выше, и все браузеры стали «правильным контентом, но вся страница обновлена» = «старый URL, новый контент». Как только я добавил JavaScript на HTML-страницу, представленную в DIV, он начал работать в браузере, описанном выше. Поэтому я вижу две возможные причины ошибки:
1) JS просто не выполняется в браузерах, имеющих ошибки или
2) JS в DIV не работает, поскольку он обращается к DIV, который существует только снаружи