Autor Zpráva
Igor Kurek
Profil
Pozdravujem. Mam problem s Ajax formularom, ktory pri nezadani povinnych udajov sice napise, ze treba opravit chyby, ale znefunkcni tlacitko odoslat, cize formular sa musi znovunacitat. Neviete mi prosim poradit ako to napravit, aby navstevnik nemusel znovu vpisovat spravne udaje vo formulari, ale aby iba opravil chybne polia?

javascript:

jQuery(document).ready(function(){
    
    $('#contactform').submit(function(){
    
        var action = $(this).attr('action');
        
        $('#contactform #submit').attr('disabled','disabled').after('<img src="assets/ajax-loader.gif" class="loader" />');
        
        $("#message").slideUp(750,function() {
        $('#message').hide();            
        
        $.post(action, { 
            name: $('#name').val(),
            email: $('#email').val(),
            phone: $('#phone').val(),
            subject: $('#subject').val(),
            comments: $('#comments').val(),
            verify: $('#verify').val()
        },
            function(data){
                document.getElementById('message').innerHTML = data;
                $('#message').slideDown('slow');
                $('#contactform img.loader').fadeOut('fast',function(){$(this).remove()});
                $('#contactform #submit').attr('disabled',''); 
                if(data.match('success') != null) $('#contactform').slideUp('slow');
                
            }
        );
        
        });
        
        return false; 
    
    });
    
});

html:

<
<form method="post" action="contact.php" name="contactform" id="contactform">
            
            <fieldset>
                    
            <legend>Please fill in the following form to contact us</legend>
        
            <label for=name accesskey=U><span class="required">*</span> Your Name</label>
            <input name="name" type="text" id="name" size="30" value="" /> 
        
            <br />
            <label for=email accesskey=E><span class="required">*</span> Email</label>
            <input name="email" type="text" id="email" size="30" value="" />
        
            <br />
            <label for=phone accesskey=P><span class="required">*</span> Phone</label>
            <input name="phone" type="text" id="phone" size="30" value="" />
        
            <br />
            <label for=subject accesskey=S>Subject</label>
            <select name="subject" type="text" id="subject">
              <option value="Support">Support</option>
              <option value="a Sale">Sales</option>
              <option value="a Bug fix">Report a bug</option>
            </select>
        
            <br />
            <label for=comments accesskey=C><span class="required">*</span> Your comments</label>
            <textarea name="comments" cols="40" rows="3"  id="comments" style="width: 350px;"></textarea>
                            
            <p><span class="required">*</span> Are you human?</p>
                    
            <label for=verify accesskey=V>&nbsp;&nbsp;&nbsp;<img src="image.php" border="0"></label>
            <input name="verify" type="text" id="verify" size="6" value="" style="width: 50px;" /><br /><br />
            <input type="submit" class="submit" id="submit" value="Submit" />
            
            </fieldset>
        
            </form

Dakujem za kazdu radu.
peta
Profil
a) $('#contactform').submit(function(){
b) <input type="submit" class="submit" id="submit" value="Submit" />

formular.submit() - to je prvni radek (a) pro js
formular.submit.value="Submit"; - to je druhy radek (b) pro js
V js nemuze promenna byt soucasne funkci a inputem.
Igor Kurek
Profil
peta:
Asi tomu dobre nerozumiem, co teda vyplyva z mojich vedomosti o JS. Skusam asi 5 alternativ, ktore mi z toho vyplyvaju, ale ziadna nezabrala. Mam teda dopisat prvy a druhy riadok do JS a vsetko ostatne posunut? Alebo mam prepisovat riadky? Dakujem za trpezlivost.
_es
Profil
Igor Kurek:
Viď: jquery - automatické odesláné formuláře po vypršení času. Nedávaj elementom formulára name=submit, ani id=submit.

aby navstevnik nemusel znovu vpisovat spravne udaje vo formulari, ale aby iba opravil chybne polia?
Musíš pri každej zmene každého formulárového poľa zisťovať, či sú údaje správne.
Igor Kurek
Profil
_es:
Dakujem za pomoc. Uz to funguje. Este raz dakujem.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: