JQuery манипуляции с формами - PullRequest
0 голосов
/ 20 января 2010

Почему-то это не меняет действия форума. У меня есть код для изменения действия формы при нажатии кнопки:

    function changeForm(event){
    alert("Before: "+jQuery("#franchiseform").attr("action"));
    jQuery("#franchiseform").attr("action", "franchisepreview.php");
   alert("After: "+jQuery("#franchiseform").attr("action"));
    jQuery("#franchiseform").submit();
    }

Переплет:

    jQuery("input.preview").bind("click", changeForm);

Форма:

<form method="post" enctype="multipart/form-data" action="franchiseinsert.php" class="insert-new" id="franchiseform">

Кнопки:

<input type="button" value="Preview" id="preview" name="preview" id="preview" class="preview" /><input type="submit" value="Insert" />

Ответы [ 3 ]

1 голос
/ 20 января 2010

Прежде всего, вам нужно очистить

<input type="button" value="Preview" id="preview" name="preview" id="preview" class="preview" />

до:

<input type="button" value="Preview" id="preview" name="preview" />

, так как вход не должен иметь несколько атрибутов id, и вы не должны использовать классы и идентификаторы содно и то же имяЭто может быть одной из причин, почему у вас проблемы.Затем я использовал следующий код, и URL-адрес действия фактически изменился:

<html>
<head>
    <title></title>

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

    <script type="text/javascript">
        $(document).ready(function() {

            $("#preview").bind("click", changeForm);

            function changeForm(event){
                alert("Before: "+ $("#franchiseform").attr("action"));
                $("#franchiseform").attr("action", "franchisepreview.php");
                alert("After: "+ $("#franchiseform").attr("action"));
                $("#franchiseform").submit();
            }   
        });
    </script>

</head>
<body>
    <form method="post" enctype="multipart/form-data" action="franchiseinsert.php" class="insert-new" id="franchiseform">
        <input type="button" value="Preview" id="preview" name="preview" />
        <input type="submit" value="Insert" />
    </form>
</body>
</html>
0 голосов
/ 21 января 2010

Оказывается, это ошибка Firefox / Mac. Это работает на других платформах и браузерах, но не на этом конкретном компьютере по какой-то причине. Это может быть конфликт расширения или что-то еще, я просто использую другой браузер.

0 голосов
/ 20 января 2010

Если вы не удалили слишком много, похоже, что вам нужно поместить свой вызов "after" в функцию с именем "changeForm", которая является тем, что вы привязываете к событию click.

в противном случае продолжайте цепочку:

jQuery("input.preview").bind("click", function(){
    jQuery("#franchiseform").attr("action", "franchisepreview.php"));
    jQuery("#franchiseform").submit();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...