将输入字段值附加到 .cshtml 页面上的 URL
Posted
技术标签:
【中文标题】将输入字段值附加到 .cshtml 页面上的 URL【英文标题】:Append an Input Field Value to a URL on a .cshtml Page 【发布时间】:2018-02-21 13:58:30 【问题描述】:我的.cshtml
页面中有一个指向 s-s-rS 报告的链接:
<div class="col-md-8">
<a href="http://xxx.xx.xx.x/ReportServer/Pages/ReportViewer.aspx?%2fCompany_Reporting%2fpayr0001&rs:Command=Render&StartDate=01/09/2017" target="_blank" >Timesheet Status Report</a>
</div>
我需要将日期控件中的值作为参数传递,而不是上面的硬编码日期:
<div class="form-group">
<input type="date" class="form-control" id="datefrom">
</div>
我已尝试将 onclick=myfunction()
附加到 url 以添加日期值,但无法正常工作。
function getStartDate()
return document.getElementById("datefrom").value;
任何帮助将不胜感激。
干杯。
【问题讨论】:
你能显示你尝试添加的onclick功能吗? 这是什么myfunction()
?仅仅发布 html 不会让我们知道实际发生了什么
【参考方案1】:
在日期更改属性上创建锚标记的 href。随时随地构建 href。
$('#datefrom').change(function()
$('#IdOfAnchorTag').attr('href','http://xxx.xx.xx.x/ReportServer/Pages/ReportViewer.aspx?%2fCompany_Reporting%2fpayr0001&rs:Command=Render&StartDate=' + $('#datefrom').val() );
);
相应地检查字符串..
【讨论】:
IdOfAnchorTag
表示锚标签的id
.. 对吗?好的...但是它在 OP 代码中没有 id
。编辑你的答案;)我的意思是......解释。 (大声笑)我想你得到了 OP 试图做的事情。
哈哈..普通..它会有一个Id,类名..一些东西..考虑到他提供的数据,我想它会在那里。【参考方案2】:
据我所知,这就是你想要做的(重复问题?):append to url and refresh page
要以正确的格式获取日期,您必须在函数主体中执行以下操作:new Date($('input[type=date]').val()).toLocaleFormat();
https://developer.mozilla.org/en-US/docs/Web/javascript/Reference/Global_Objects/Date/toLocaleFormat
另外,您可能想要使用“onblur”/模糊事件来输入日期,或者将您的事件处理函数连接到专门用于该目的的新按钮。这是因为 onclick/click 事件将在您单击日期输入后立即触发(这可能会打开某种日历小部件,具体取决于浏览器和浏览器版本)。
【讨论】:
【参考方案3】:在将日期值传递给 url 之前,请尝试将日期转换为 dd-MM-yyyy
或 MM-dd-yyyy
而不是 dd/MM/YYYY
。
因为我觉得url的时候会误解“/”,所以应该换成“-”。
然后,如有必要,您可以转换回旧格式。
【讨论】:
以上是关于将输入字段值附加到 .cshtml 页面上的 URL的主要内容,如果未能解决你的问题,请参考以下文章
如何将配置设置添加到 _Layout.cshtml 共享 Razor 页面
jquery ajax上的Textarea没有发送到mysql,只是输入字段