无法在mvc

时间:2016-11-17 16:56:19

标签: javascript jquery html asp.net-mvc

简要说明:在表单上,​​您可以选择预定义的关联并保存,也可以创建一个新关联然后保存,但不能同时执行。预定义的关联项显示在下拉列表中。

html的

<form id="_jqFormAssociate">
   <select id="AssociateId">
      <option value="">-- Select --</option>
      <option value="1">Associate_1</option>
      <option value="2">Associate_2</option>
      <option value="3">Associate_3</option>
   </select>

   <div id="_jqDisablePanel">
      <input id="FirstName" type="text">
      <input id="LastName" type="text">
      <input id="Dob" type="text">
   </div>
</form>

的jQuery

$(document).on("change", "#AssociateId", function(){
   // if an associate is selected from the drop-down list
   // (value of selected option is a numeral greater than 0),
   // then disable the "#_jqDisablePanel" else, enable it.

   // With disabling the "#_jqDisablePanel"
   // the input fields within it must also
   // be cleared/reset to default, so I
   // used the following:

   var panel = $("#_jqDisablePanel");
   (panel.find("input")).val("");
   (panel.find("select")).val("");
   (panel.find("textarea")).val("");
});

有问题的案例

  1. 我们通过从下拉列表
  2. 中选择一个选项来创建记录
  3. 我们要编辑我们在1st-Step创建的记录(预先选择了Associate,其他字段显然为空)。
  4. 为此,我们不需要选择任何内容(表示选择 - 选择 - 选项,作为回报,将启用面板)。
  5. 现在我们可以手动插入文本字段中的值了 然后保存。
  6. 当点击保存按钮时,没有任何事情发生(提交按钮确实突出显示)。
  7. 后来我发现这是因为代码,我添加到重置_jqDisablePanel

    解决方案

    $(document).on("change", "#AssociateId", function(){
           // I needed to use the following
           // if condition which was added to
           // resolve the problem.
    
           if($("#_jqDisablePanel").is(":enable")) {
              var panel = $("#_jqDisablePanel");
              (panel.find("input")).val("");
              (panel.find("select")).val("");
              (panel.find("textarea")).val("");
           }
        });
    

    我从这一切得到的东西:意识到jQuery代码不仅重新启用了已启用的输入字段,而且还在禁用它们时重置它们,这就是保存表单的原因被张贴。

    问题

    使用(panel.find("input")).val("")时,在禁用停止表单的输入字段时发生了什么?

    这不是实际的表单,正如我有权访问代码,但我已经尽力解释这个情景(我想是这样...... )。

0 个答案:

没有答案