2017-04-16 65 views
0

我有一个形式的视图中它:清除一个字段当用户开始填写表格

<form asp-controller="UrlP" asp-action="RegisterInput" method="post"> 
Url: <input asp-for="Url" /> 
<br /> 
<button type="submit">Go!</button> 

和,在相同的视图,我已经从先前提交的结果:

@if (!string.IsNullOrEmpty(Model.Result)) 
{ 
    <div class="result">The result is: @Model.Result</div> 
} 

如何让上面的div(类'结果')在用户开始在表单中输入时立即消失?

为了给出一些上下文,该应用程序是一个单独的页面,您可以在其中提供一个url并获得下面的结果,我希望在输入新的url时立即清除结果。

+0

我已经删除了asp.net-core标记,因为问题与ASP.NET Core无关,但是关于javascript/html和客户端双面问题(发生在浏览器中而不是在服务器上) – Tseng

+0

该解决方案将涉及JS,但由于表单是通过asp标签启动的,我希望在表单开始编辑时会有一些asp回调(例如,我是新手asp) – Thomas

+0

@Tseng:我已经包含了asp-net-core标签。这个问题不需要任何前端技术干扰,可以通过asp代码处理。 – Tushar

回答

0

由于您使用ASP.net核心,它可以从行动和模型状态

后门柱因此被处理,只是清除您的ModelState和喜欢返回查看:

ModelState.Clear(); 
return View(<some View>); 
+0

这不是OP要求的。他询问**用户何时开始输入** – Tseng

0

这是一种方法。

window.onload = function() { 
 
    // attach onkeypress event handler to all text inputs 
 
    document.querySelectorAll('form [type=text]').forEach(function (input) { 
 
    input.onkeypress = hideResult; 
 
    }); 
 
}; 
 

 
function hideResult() { 
 
    var result = document.querySelector('.result'); 
 
    // remove result if it exist 
 
    if (result) { 
 
     result.parentNode.removeChild(result); 
 
    } 
 
}
<div class="result">The result is: @Model.Result</div> 
 

 
<form> 
 
    <input type="text" value=""><br> 
 
    <input type="text" value=""> 
 
</form>

相关问题