将数组值分配给jquery中的隐藏字段

时间:2011-05-07 20:13:56

标签: jquery hidden-field

当然,我在这里缺少一些简单的东西。我正在尝试通过jquery为隐藏字段赋值。它一直没有返回,我尝试了几件事。我在一个名为personemail []的表单上有一个数组,它相应地指定和命名字段,personemail [0],personemail [1]等,我想提取列出的第一个电子邮件地址并将其分配给名为person_email的隐藏字段。

    <script type="text/javascript" charset="utf-8">
    jQuery(document).ready(function() {
    var emailvalue = jQuery('#personemail[0]').val();
    jQuery('#person_email').val(emailvalue);
    });
</script>

我是jquery的新手,所以这对于我所缺少的东西来说有点神秘。我需要在#emailperson []上使用.change()吗?我假设我需要闯入数组来获取值,但我不确定如何。我无法让这件作品发挥作用。

这是帖子数据

Array ( [person_name] => max 
        [person_email] => 
        [person_phone] => 111-1111 
        [booking_seats] => 1 
        [personname] => Array ( [0] => max ) 
        [personemail] => Array ( [0] => max@max.com ) 
        [booking_comment] => 
        [eventAction] => add_booking 
        [event_id] => 14 )

正如你所看到的,我把电子邮件地址放到了数组中就好了,我只是不能让它坚持到person_email

这是一个配对的HTML版本,服务器端语言是php。输入是通过我编写的jquery clone函数生成的。根据所选人数的下拉列表为每个新人吐出一个html元素:

<form id='rsvp-form' name='booking-form' method='post' action='<?php echo $destination ?>'>          
    <tr class="personrow">
    <th scope="row"></th><td>Name:<br><input class="required person" type="text" name="personname[0]" /><br>Email:<br><input class="required email additional" type="text" name="personemail[0]" id="personemail[0]" /></td><td class="theextra"></td>
</tr>       
<input type='hidden' name='person_email' id='person_email' />
<input type='submit' class='blkBTN' value='<?php _e('Book It!', 'dbem') ?>'/>&nbsp;&nbsp;&nbsp;&nbsp;
<input type='hidden' name='eventAction' value='add_booking'/>
<input type='hidden' name='event_id' value='<?php echo $EM_Event->id; ?>'/>

由于

2 个答案:

答案 0 :(得分:0)

你应该在选择器中使用括号(带反斜杠),因为括号是jquery选择器中的特殊字符。所以你应该:

var emailvalue = jQuery('#personemail\\[0\\]').val();

希望这会有所帮助。欢呼声。

答案 1 :(得分:0)

在我看来,在提交文档之前,您正试图获取文档的输入数据。在那一刻,输入字段中没有任何内容可供读取。我要做的就是提交,就像这样

$("#rsvp-form").submit(function(event){
    event.preventDefault(); //stop the form from submitting, you'll do it later
    var emailvalue = $("personemail\\[0\\]").val();
    $("#person_email").val(emailvalue);
    $("#rsvp-form").submit(); //you got the hidden input value, now submit the form
});

这是一个jsfiddle示例http://jsfiddle.net/x6dPd/

编辑:示例中有一个拼写错误。