簡體   English   中英

jQuery +隱藏的輸入字段

[英]jQuery + hidden input fields

我遇到的問題的簡化版本:

這是我的HTML表單:

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

這是JavaScript:

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

這是PHP后端的一個非常簡短的版本:

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

我要做的是將#submit_form按鈕懸停幾秒鍾,以確保執行了jQuery代碼,然后提交表單並執行以下操作:

  • $ _POST ['hidden_​​field']為空!

這是為什么? 當我將鼠標懸停事件將其插入jQuery的隱藏字段時,它應包含“ abcd”。

設置值的正確方法:

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

參考: http : //docs.jquery.com/Attributes/val

該聲明

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

是不正確的。 當您將一個右值(jQuery對象)分配給另一個右值(字符串)時,您應該在此出現錯誤。 (賦值運算符在左側需要一個左值(例如,變量)。)

您可能想要:

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

要么:

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

(前者更像jQuery,但在這種情況下,兩者都是等效的。)

它是:

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

由於這些都是隱藏元素,因此請務必通過查看頁面源代碼的方式進行其他檢查,例如,按F12鍵,使用alert()等進行檢查。原始html頁面的源代碼將不會反映通過javascript對其所做的更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM