JQuery - 为隐藏的输入添加值

时间:2012-11-17 20:53:56

标签: javascript jquery

如何为隐藏的输入字段添加值?在这种情况下,输入被创建为变量,后者在需要时插入到DOM中。代码:

<script>
    var forma = $('form#mali_oglas'),
    pomoc = $('div[role=pomoc]'),
    div = $('.mali_oglas_pomoc'),
    input = forma.find('input, textarea'),
    code = forma.find('#code')
    time_input = '<input type="hidden" name="time" />',
    paid_input = '<input type="hidden" name="paid" value="1" />';

    $('textarea').autosize();

    input.on('click', function(e){
        var name = $(':input:focus').attr("name");
        pomoc.fadeOut('slow').promise().done( function(){
         div.find("[data-pomoc='" + name + "']").fadeIn('slow');
     });
    });


    code.on('focusout', function(){
        var url = '<?php echo base_url() ?>global_info/gi_get_payment_code',
        kod = $(this).val();
if ($('input[name=paid]').length != 1)
    {
        $.post(url, {code : kod}, function(data){
            console.log(kod);
            $('.mali_oglas_img_paid').slideDown('slow');
            code.next('.mali_oglas_greska').remove();
            code.after(time_input.val(data) + paid_input)
            .css({'border' : '1px solid rgba(34,139,34,.5)'});
        });
    };
    });

    code.ajaxError(function() {
  $(this).next('.mali_oglas_greska').remove();
  $(this).after('<p class=mali_oglas_greska>Uneti kod je pogresan.</p>').css({'border' : '1px solid rgba(255,0,0,.5)'});
});
</script>

3 个答案:

答案 0 :(得分:2)

您正在为字符串调用val方法,您应首先创建一个jQuery对象,更改:

time_input.val(data)

为:

$(time_input).val(data)

请注意,您无法将对象与字符串连接,您应该调用after方法2次或使用add方法。

答案 1 :(得分:1)

您正在尝试对仅仅是html字符串

的变量使用jQuery方法

您可以将变量转换为包含在$()

中的jQuery对象元素

如果一个是对象,则无法连接2个输入,因此您需要反转插入

code.after( paid_input).after( $(time_input).val(data) )
/* should place "time_input" before "paid_input"

答案 2 :(得分:0)

time_inputpaid_input是字符串而不是jQuery对象,请尝试使用

time_input = $('<input type="hidden" name="time" />'),
paid_input = $('<input type="hidden" name="paid" value="1" />');