【问题标题】:unable to set value to hidden field from jquery [duplicate]无法从jquery为隐藏字段设置值[重复]
【发布时间】:2017-10-24 11:44:40
【问题描述】:

下面是html代码

<input id="Jobs[0].TestParameter" name="Jobs[0].TestParameter" type="hidden" />

以下是jquery代码

var ParamArr = [ "Ford", "BMW", "Fiat" ];
$("#Jobs[0].TestParameter").val(JSON.stringify(ParamArr));
            alert($("#Jobs[0].TestParameter").val());

【问题讨论】:

  • 你为什么使用像 Jobs[0].TestParameter 这样的 id?
  • 我正在将对象列表传递给 .net 控制器,所以我需要以这种方式传递

标签: jquery html


【解决方案1】:

转义 ID 标签中的特殊字符以解决您的问题。

$("#Jobs\\[0\\]\\.TestParameter").val(JSON.stringify(ParamArr));
            alert($("#Jobs\\[0\\]\\.TestParameter").val());

var ParamArr = [ "Ford", "BMW", "Fiat" ];
$("#Jobs\\[0\\]\\.TestParameter").val(JSON.stringify(ParamArr));
            alert($("#Jobs\\[0\\]\\.TestParameter").val());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="Jobs[0].TestParameter" name="Jobs[0].TestParameter" type="hidden" />

【讨论】:

    【解决方案2】:

    将简单的 id \\ 传递给转义字符

    var ParamArr = ["Ford", "BMW", "Fiat"];
    $("#Jobs\\[0\\]\\.TestParameter").val(JSON.stringify(ParamArr));
    alert($("#Jobs\\[0\\]\\.TestParameter").val());
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <input id="Jobs[0].TestParameter" name="Jobs[0].TestParameter" type="hidden" />

    【讨论】:

      【解决方案3】:

      您需要对方括号 ([]) 和点 (.) 进行转义,以免它们被计为属性选择器。试试这个

      var ParamArr = ["Ford", "BMW", "Fiat"];
      $("#Jobs\\[0\\]\\.TestParameter").val(JSON.stringify(ParamArr));
      alert($("#Jobs\\[0\\]\\.TestParameter").val());
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
      <input id="Jobs[0].TestParameter" name="Jobs[0].TestParameter" type="" />

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-12-30
        • 1970-01-01
        • 2011-08-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多