【问题标题】:jQuery select2-offscreen class with drop list?带有下拉列表的jQuery select2-offscreen类?
【发布时间】:2014-11-10 21:41:51
【问题描述】:

我正在使用 MVC4、C#、Razor 引擎和 jQuery 制作一个小项目。在我的代码中,我有一个下拉列表,每次在该下拉列表中选择一个项目时,我都想发送一个 Ajax 请求,其中包含所选信息以及 HTML 中的订单 ID:

<input type="hidden" id="materialRequestId" value=@myId />

为了实现这一点,当用户在我的下拉列表中选择一个项目时,我尝试使用其 id 获取closest/sibling/find HTML 标记,但我失败了,因为$(this) 似乎只有一个 @987654324 类@ 因此每次我使用之前的 jQuery 函数之一时,我都会得到未定义的结果。

$('#OfficeId').change(function () {
    alert($(this).closest("div").siblings("#materialRequestId").value;);         
});

这是我的 HTML:

<td>
    <input type="hidden" id="materialRequestId" value=4 />
    <div class="hide officeList">
        <select id="OfficeId" name="OfficeId">
            <option value="18">AMAALB</option>
            <option value="19">AMABGR</option>
            <option value="20">AMACRO</option>
        </select>
   </div>
</td>

我在这里缺少什么?为什么这不起作用?

【问题讨论】:

  • 你不能直接获取价值吗? $("#materialRequestId").value;
  • 我可以,但问题是我有多个具有该 ID 的实体。现在想来,其实应该是一个类而不是一个Id,但问题依然存在xD
  • 页面上不能有超过 1 个元素具有该 ID。
  • 是的,明白了!谢谢!另外,我尝试在代码中使用.attr('value'),它可以工作!不知道为什么:S 如果你用这个解释添加一个答案,我会接受它:D

标签: javascript c# jquery html asp.net-mvc-4


【解决方案1】:

如果你直接获得价值

 $("#materialRequestId").attr("value");

并确保每个页面只有 1 个元素具有它应该工作的唯一 ID

【讨论】:

  • 实际上,$("#materialRequestId").attr('value') 也可以。知道为什么吗?
  • 你是对的,因为你正在寻找属性,我已经把它从代码中删除了..d'oh.现在编辑。应该是 attr('value');
  • 或者更简单,$("#materialRequestId").val();
猜你喜欢
  • 1970-01-01
  • 2012-10-25
  • 1970-01-01
  • 2017-12-17
  • 2019-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多