将输入字段值附加到 .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-yyyyMM-dd-yyyy 而不是 dd/MM/YYYY。 因为我觉得url的时候会误解“/”,所以应该换成“-”。 然后,如有必要,您可以转换回旧格式。

【讨论】:

以上是关于将输入字段值附加到 .cshtml 页面上的 URL的主要内容,如果未能解决你的问题,请参考以下文章

如何使用拖放将值附加到输入表单字段中

使用 div 的值附加输入文本字段

如何将配置设置添加到 _Layout.cshtml 共享 Razor 页面

jquery ajax上的Textarea没有发送到mysql,只是输入字段

WooCommerce 4.0 电子邮件、管理员订单和感谢页面上的自定义结帐和 ACF 字段值

更改列表页面上的 django admin 附加字段