jQuery操纵表单

时间:2010-01-20 18:01:54

标签: php jquery forms

出于某种原因,它并没有改变论坛的行动。我有一些代码可以在单击按钮时更改表单的操作:

    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 个答案:

答案 0 :(得分:1)

首先,您需要清理

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

为:

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

作为输入不应该有多个id属性,你不应该使用具有相同名称的类和id。这可能是您遇到问题的原因之一。然后我使用了以下代码,动作网址实际上正在改变:

<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>

答案 1 :(得分:0)

除非你剥离太多,否则你需要将“after”调用放入一个名为“changeForm”的函数中,这就是你对click事件的绑定。

否则,继续链接:

jQuery("input.preview").bind("click", function(){
    jQuery("#franchiseform").attr("action", "franchisepreview.php"));
    jQuery("#franchiseform").submit();
});

答案 2 :(得分:0)

事实证明这是Firefox / Mac特有的错误。它适用于其他平台和浏览器,但出于某种原因不适用于此特定计算机。它可能是一个扩展冲突或其他东西,我只会使用另一个浏览器。