jQuery formları manipüle

3 Cevap php

Nedense bu forumun eylem değişen değil. Ben bir düğme tıklandığında formun eylemi değiştirmek için bazı kod var:

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

Bağlanması:

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

Form:

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

Düğmeler:

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

3 Cevap

Bu bir Firefox / Mac özgü hata olduğunu çıkıyor. Bu diğer platformlarda ve tarayıcılarda çalışır, ancak bu özel bilgisayar nedense. Bu bir uzantısı çatışma ya da başka bir şey olabilir, ben sadece başka bir tarayıcı kullanın edeceğiz.

Öncelikle, temizlemek gerekir

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

için:

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

Bir giriş çoklu kimliği özniteliklerine sahip olmamalı ve aynı adla sınıfları ve id kullanmak gerektiği gibi. Eğer sorun yaşıyorsanız nedenlerinden biri olabilir. Sonra aşağıdaki kodu kullanılmış ve eylem url aslında değişen edildi:

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

Eğer çok fazla dışarı çıkardı sürece, bu koymak gerekir gibi görünüyor senin sen click olayı için bağlayıcı olan budur "changeForm" adında bir fonksiyonu çağırmak "sonra".

Aksi takdirde, zincirleme tutmak:

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