1

如何为隐藏的输入字段增加价值?在这种情况下,输入被创建为变量,然后在需要时插入到 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>
4

3 回答 3

2

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

time_input.val(data)

到:

$(time_input).val(data)

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

于 2012-11-17T20:57:26.103 回答
1

您正在尝试对只是一个 html 字符串的变量使用 jQuery 方法

您可以将变量转换为包装它的 jQuery 对象元素$()

一旦一个是对象,您就不能连接两个输入,因此您需要反转插入

code.after( paid_input).after( $(time_input).val(data) )
/* should place "time_input" before "paid_input"
于 2012-11-17T21:00:54.660 回答
0

time_input并且paid_input是字符串不是 jQuery 对象,试试这个

time_input = $('<input type="hidden" name="time" />'),
paid_input = $('<input type="hidden" name="paid" value="1" />');
于 2012-11-17T20:59:58.813 回答