Форма Jquery не работает, когда внутри div - PullRequest
0 голосов
/ 03 декабря 2011

У меня есть простая форма, которая отправляет данные в файл php, этот файл обновляет базу данных данными формы.Форма работает правильно, когда загружается на страницу, щелкнув ссылку href, но когда загружается с помощью jquery load () в div (эта страница загружается в div, вложенный в другую страницу), форма больше не отправляетданные, обновляет ввод текста или поддерживать фокус.Я пробовал использовать «submit», «live» и «livequery», и, похоже, ни один из них не работает, когда находится внутри этого div.форма, вложенная в раздел «main» на предыдущей странице:

<form id="DataToDB" name="DataToDB">
<input type="hidden" name="User" id="User">
<input type="text" name="Message" id="Message">
<input type="submit" name="Send" value="Send">
</form>

Могу я спросить, где ошибка в скрипте jquery?

Заранее спасибо

Ответы [ 3 ]

1 голос
/ 03 декабря 2011

Прежде всего, у вас есть закрытая форма. Поставьте </form> в конце вашей формы DataToDB.

<form id="DataToDB" name="DataToDB">
<input type="hidden" name="User" id="User">
<input type="text" name="Message" id="Message">
<input type="submit" name="Send" value="Send">
</form>

Во-вторых, попробуйте использовать функцию .submit:

$("#DataToDB").submit(function() {

Когда вы нажмете кнопку «Отправить», вы увидите предупреждение.

0 голосов
/ 10 октября 2012

Оказывается, была не связанная с этим "ошибка" HTML, из-за которой форма не была отправлена ​​в I.e. После исправления исходный код и предложения работают.

0 голосов
/ 03 декабря 2011

Попробуйте этот код:

<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"              type="text/javascript" ></script>
<script type="text/javascript">
$(document).ready(function() {

$("#DataToDB").submit(function() {
var User = $('#User').attr('value');
var Message = $('#Message').attr('value');
    $.ajax({ 
    type: "POST",  
    url: "updateDB.php",
    data: "User="+ escape(User) +"& Message="+ escape(Message),
    dataType: "html",
    scriptCharset: "utf-8",
    success: function() {
    alert("Message sent");
    }
    });
$("#Message").attr("value", "");
$('input#Message').focus();
return false;
});

});
</script>
</head>

<body>

<div id="menu">
<a href="Page1.php" class="linkpage">Page1</a>
<a href="Page2.php" class="linkpage">Page2</a>
</div>

<div id="main">
<form id="DataToDB" name="DataToDB">
    <input type="hidden" name="User" id="User">
    <input type="text" name="Message" id="Message">
    <input type="submit" name="Send" value="Send">
</form>        
</div>

</body>

Аааа ... просто.Вставьте это в свой Page1.php Page2.php

<form id="DataToDB" name="DataToDB">
<input type="hidden" name="User" id="User">
<input type="text" name="Message" id="Message">
<input type="submit" name="Send" value="Send">
</form>

<script type="text/javascript">

$("#DataToDB").submit(function() {                          
var User = $('#User').attr('value');
var Message = $('#Message').attr('value');

$.ajax({ 
    type: "POST",  
    url: "updateDB.php",
    data: "User="+ escape(User) +"& Message="+ escape(Message),
    dataType: "html",
    scriptCharset: "utf-8",
    success: function() {
    alert("Message sent");
    }
    });
$("#Message").attr("value", "");
$('input#Message').focus();
return false;
});

</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...