1

所以我使用了一个隐藏的表单字段,并用我的 JQuery 代码 onSubmit 中的数据填充它。问题是,JQuery 填充了 BOTH Type="Hidden" 字段。我只希望它填充 name="moment" 一个,我该如何解决这个问题?

这是我的html:

<form method="post" action="momentactions.php">
    <input type="hidden" name="album_id" value="<?php echo $album_id; ?>">
    <input type="hidden" name="moment">
    <input type="submit" name="submit" value="submit">
</form>

这是我的jQuery:

$('form').on('submit', function() {
    values = [];
    $('#container-top img').each(function() {
    values.push($(this).attr('value'));
    });
$('input[type=hidden]').val(JSON.stringify(values));
});
4

4 回答 4

3

很简单:

input[type="hidden"][name="moment"]

但仍然 - 提取所有值、序列化它们并发送序列化的值并不是一个好主意

于 2012-09-21T03:06:50.090 回答
3

这行代码

$('input[type=hidden]')

说“给我所有具有隐藏类型的输入元素”,因为你只想要其中一个,你可以做一些不同的事情。

您可以为所需的输入字段提供一个 ID,然后使用 jQuery ID 选择器 (#):

$('#idgoeshere')

或者你可以给你想要的输入字段一个类并使用类选择器 (.):

$('.classgoeshere')

或者您可以保留当前的 ​​html 并使用属性选择器,就像您当前的选择器一样,只有一个不同的属性:

$('input[name="moment"]')
于 2012-09-21T03:11:30.030 回答
2

尝试这个

$('input[type=hidden][name=moment]').val(JSON.stringify(values));

也不要忘记关闭输入标签..

$('input[name=moment]')
$('input[name=moment]:hidden')

都是有效的选择器..

于 2012-09-21T03:06:56.980 回答
0

我建议您在输入标签上添加 id="moment"

<input type="hidden" name="moment" />

将其更改为

<input type="hidden" name="moment" id="moment" />

所以在你的代码上,你可以使用

$('input#moment').val(JSON.stringify(values));
于 2012-09-21T03:08:54.900 回答