jQuery + giriş tarlalar gizli

4 Cevap php

Ben yaşıyorum sorun basitleştirilmiş bir versiyonu:

İşte benim HTML formu:

<form enctype="multipart/form-data" method="post" action="/controller/action">
<input type="text" name="title" id="title" value="" class="input-text" />
<input type="hidden" name="hidden_field" value="" id="hidden_field" />
<input type="submit" name="submit_form" id="submit_form" value="Save" class="input-submit" />
</form>

İşte JavaScript:

$(document).ready(function() {    
    $('#submit_form').hover(function() {
        $('#hidden_field').attr('value') = 'abcd';
    });
});

Ve burada PHP arka uç gerçekten kısa bir versiyonu:

if (isset($_POST)) {
    var_dump($_POST);
}

Ne yapmam ben sadece kod jQuery idam var emin olmak için birkaç saniye için # submit_form düğmesini gezdirin, daha sonra ben formu ve:

  • $ _POST ['hidden_field'] boş!

Neden ki? Ben vurgulu olay üzerinde jQuery ile gizli alanına sokun gibi 'abcd' içermelidir.

4 Cevap

Değerini ayarlamak için doğru yolu:

 $('#hidden_field').val('abcd');

Referans: http://docs.jquery.com/Attributes/val

Ifadesi

$('#hidden_field').attr('value') = 'abcd';

yanlıştır. Başka rvalue (bir dize) bir rvalue (jQuery nesne) atıyorsanız gibi orada bir hata almalısınız. (Atama operatörü soldaki bir sol taraf (örneğin bir değişken) ihtiyacı vardır.)

Muhtemelen istiyorum:

$('#hidden_field').val('abcd');

veya:

$('#hidden_field').attr('value', 'abcd');

(Eski Daha jQuery-ish, ama bu durumda hem equivilent vardır.)

öyle:

$('#hidden_field').attr('value','abcd');

Bu gizli unsurlar sayfa kaynağını yani F12 tuşuna görüntülerken, özgün html sayfasının kaynak javascript aracılığı yapılan değişiklikleri yansıtmaz alert(), vs ile kontrol o başka bir şey ile bu kontrol ediniz yana .