更改编辑器以及更改输入时

时间:2017-01-23 15:32:18

标签: javascript html asp.net-mvc-4

当我更改输入时,我想更改编辑器以显示数据库中的数据 我将获取输入的输出并将其拆分并将结果放入2 EditorFor

<input type="text" value="Set Date" id="reservationtim onchange=myFunction()>

 @Html.EditorFor(model => model.StartDate, new { htmlAttributes = new { @class = "form-control" }, id = "startDate" })

 @Html.EditorFor(model => model.EndDate, new { htmlAttributes = new { @class = "form-control" } , id = "endDate" })

和功能:

<script>
   function myFunction() {
   var date = document.getElementById("reservationtime").value;
   var res = date.split("-");
   model => model.StartDate = res[0];
   document.getElementById("startDate") = res[0];
   document.getElementById("endDate") = res[1];
  }
</script>

2 个答案:

答案 0 :(得分:0)

您正在尝试将元素引用本身设置为您想要的值。而是需要设置元素引用的value属性:

document.getElementById("startDate").value = res[0];

此外,您似乎正在尝试在此处混合服务器端和客户端代码。请记住,在文档已由服务器处理并返回给客户端之前,不会处理JavaScript。一旦你是客户端,所有存在的只是DOM,它是由浏览器根据服务器发送的HTML文档创建的。换句话说,你使用EditorFor或其他东西的事实完全丢失了。您所拥有的只是EditorFor调用的结果(即HTML)。

答案 1 :(得分:0)

您应首先更正HTML,因为未正确指定某些属性。

    <script>
       function myFunction() {
       var date = document.getElementById("reservationtime").value;
       var res = date.split("-");
       model => model.StartDate = res[0];
      if(res.length>1) {
       document.getElementById("StartDate").value = res[0];
       document.getElementById("EndDate").value = res[1]; 
      // if you still want to set ID properties instead of using default use  following
      //   document.getElementById("StartDate").value = res[0];
     //   document.getElementById("EndDate").value = res[1]; 
     }



      }
    </script>

我不知道你为什么要为上面两个编辑器明确设置id。默认情况下,它们将属性名称作为ID。所以我建议为它编写脚本。

RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]