2010-05-14 207 views
6
$().ready(function() 
    { 
    $("#add").click(function() 
    { 
    var vals = $("#txtaddfeature").val(); 
    if(vals !='') 
     $('#FeatureLists').prepend('<option value="' + vals + '" selected="selected">' + vals + '</option>'); 
    $('#txtaddfeature').val(''); 
    }); 
    }); 

好如上jQuery的动态添加隐藏字段

$('#FeatureLists').prepend('<option value="' + vals + '" selected="selected">' + vals + '</option>'); 

我想创建一个与上面定义ID =瓦尔斯一个动态的隐藏字段,并设置其增值价值选择列表后,输入值在文本框中。我怎么能做到这一点

+0

偏题 - 你使用的是什么版本的jQuery? '$()。ready(...)'因为'$()'不再使用'document'返回一个jQuery对象,所以如果你有jQuery 1.4,可能就不应该使用它了。相反,请执行'$(document).ready(...)',或者只是'$(function(){...})'。 – user113716 2010-05-14 12:20:48

+0

ok thx我会检查我的代码并将其更改为 – maztt 2010-05-14 12:26:34

回答

20

我不能告诉你想要的到底是什么。看起来好像你希望新隐藏的inputIDvalue的值为vals。是对的吗?

var $hiddenInput = $('<input/>',{type:'hidden',id:vals,value:vals}); 

然后,您可以将它追加到任意位置。

$hiddenInput.appendTo(selector); 

编辑:

对于澄清,selector是参照要追加新输入的元素。

如果你想将其追加到body标签,这样做:

$hiddenInput.appendTo('body'); 

如果你想将其追加为与类someClass的元素,这样做:

$hiddenInput.appendTo('.someClass'); 
+0

$ hiddenInput.appendTo(selector); ,这里的选择器是什么 – maztt 2010-05-14 12:38:58

+1

对不起,'selector'就是你想添加输入的元素。例如,如果您键入“body”,它会将隐藏的输入添加到主体。我会更新我的答案。 – user113716 2010-05-14 12:43:25

+1

为什么隐藏输入上的'$'? – 2013-06-07 13:42:57

1

你可以这样做:

$("input").attr("type", 'hidden').val($('#txtaddfeature').val()).appendTo('selector_here'); 
2

我会检查看看它是否在页面上,然后添加。

function SetHiddenInput(val) 
{ 
    var $txtaddfeaturehidden == $("#txtaddfeaturehidden"); 

    if ($txtaddfeaturehidden.length == 0) 
    { 
     $("input").attr({ 
      id : "txtaddfeaturehidden", 
      type : "hidden", 
      value : $('#txtaddfeature').val() 
     }).after('#txtaddfeature'); 
    } 
    else $txtaddfeaturehidden.val(val); 
}