【问题标题】:tasking previously default value from the text box not taking edit value从文本框中处理以前的默认值不采用编辑值
【发布时间】:2018-07-12 07:18:33
【问题描述】:

当我编辑 ProjectName 输入中的值时,项目对象中的值是相同的 不采用我的编辑值,它将采用默认的 previoeuslly 值。

<td class="ProjectName">
  <span>@item.ProjectName</span>
  <input type="text" style="display: none" value="@item.ProjectName" />
</td>
var projects = {};
projects.ID = row.find(".ID").find("span").html();
projects.ProjectName = row.find(".ProjectName").find("span").html();
projects.ProjectDescription = row.find(".ProjectDescription").find("span").html();
projects.StartDate = row.find(".StartDate").find("span").html();
projects.EndDate = row.find(".EndDate").find("span").html();
console.log(projects)

【问题讨论】:

  • 您的输入设置为style="display:none",所以它必须是不可见的,那么您如何在其中输入值?请分享更多细节,例如执行 jquery 代码和整体表结构时
  • 这大概是因为您只在页面加载时设置了projects 对象的属性。如果要在用户键入时更新值,则需要使用 input 事件处理程序。如果您花时间研究,有成千上万的问题和教程涵盖了这一点
  • @BhushanKawadkar 当我使用追加行功能时它是不可见的..
  • @RoryMcCrossan 我创建了一个项目对象以将数据发送到 ajax,但我在文本框中编辑的数据没有消失,以前的值在项目对象中消失了。它不会占用我的编辑值。

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


【解决方案1】:

试试这个:你正在尝试阅读 span 文本而不是 input 因此没有得到编辑值。请使用以下代码读取输入值

projects.ProjectName = row.find(".ProjectName").find("input").val();

注意:您可以为输入提供特定的 id (在 DOM 中必须是唯一的),这样如果将来表结构发生变化,您就无需修改脚本,它会读取正确的输入值仅限。

<input type="text" style="display: none" value="@item.ProjectName" id="projectName" />

projects.ProjectName = $("#projectName").val();

【讨论】:

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