2012-11-17 129 views
1

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

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

回答

1

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

您可以转换的变量一个包含它的jQuery对象元素$()

一旦一个对象是一个对象,就不能连接这两个输入,所以你需要反向插入

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

它正在像一个魅力。感谢您的帮助 :) – Sasha

2

您所呼叫的val方法的字符串,你应该先创建一个jQuery对象,更改:

time_input.val(data) 

到:

$(time_input).val(data) 

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

0

time_inputpaid_input都是字符串不是jQuery的对象,试试这个,而不是

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