jQuery动态添加隐藏字段

7
$().ready(function() 
  {
  $("#add").click(function() 
    {
    var vals = $("#txtaddfeature").val();
    if(vals !='')
      $('#FeatureLists').prepend('<option value="' + vals + '" selected="selected">' + vals + '</option>');
    $('#txtaddfeature').val('');
    });
  });

在上述将值添加到选择列表后

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

我想创建一个动态的隐藏字段,其id=vals已被定义,并将其值设置为在文本框中输入的值。我该如何做到这一点?

离题 - 你使用的是哪个版本的jQuery?如果你使用的是jQuery 1.4,那么$().ready(...)可能不应该被使用,因为$()不再返回带有document的jQuery对象。相反,可以使用$(document).ready(...)或者$(function() {...}) - user113716
好的,谢谢。我会检查我的代码并进行修改。 - maztt
3个回答

20

我不能确定您想要什么。看起来您想要新隐藏的inputIDvalue都是vals的值。是这样吗?

var $hiddenInput = $('<input/>',{type:'hidden',id:vals,value:vals});
然后你可以将它添加到任何想要的位置。
$hiddenInput.appendTo(selector);

编辑:

为了澄清,selector 指的是您想要附加新输入的元素引用。

如果您想将其附加到 body 标记,请执行以下操作:

$hiddenInput.appendTo('body');

如果你想将它附加到一个带有类名为someClass的元素中,则可以执行以下操作:

$hiddenInput.appendTo('.someClass');

$hiddenInput.appendTo(selector);,这里的选择器是什么? - maztt
1
抱歉,selector只是您想要附加输入的元素。例如,如果您键入了“body”,它将附加隐藏的输入到body中。我会更新我的答案。 - user113716
1
为什么在 hiddenInput 上要用 '$' 符号? - Edson Medina

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);
}

1
你可以这样做:
$("input").attr("type", 'hidden').val($('#txtaddfeature').val()).appendTo('selector_here');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接