使用 JavaScript 调用重定向到具有 asp.net MVC 应用程序的操作
本文关键字:MVC net 应用程序 操作 asp 调用 JavaScript 重定向 使用 | 更新日期: 2023-09-27 18:34:33
>我有一个 asp.net 应用程序,我必须在其中执行操作单击表单的"提交"按钮:
脚本
<script>
$(function(){
function result(arr, identificateur,Pages) {
var f1 = $('input[name="reception' + arr + '"]').val();
var f2 = $('input[name="client' + arr + '"]').val();
var f3 = $('input[name="cloture' + arr + '"]').val();
var f4 = $('input[name="tag' + arr + '"]').val();
location = "@Url.Content("/Pages/Index")?identificateur=" + identificateur + "&Pages=" + Pages + "&_reception=" + f1 + "&_cloture=" + f3 + "&_client=" + f2 + "&_tag=" + f4;
}});
</script>
然后,形式:
<input type="submit" onclick="result(@i.ToString(),@Model[1][i].Id ,"1");" value="Enregistrer"/>
当我单击提交按钮时,没有任何反应,并且我没有重定向到操作Index
。
这个问题的原因是什么?我该如何解决它?
编辑
<input type="submit" id="Enregistrer" value="Enregistrer" data-arr="@i.ToString()" data-identificateur="@Model[1][i].Id" />
<script>
$(function () {
$('#Enregistrer').click(function () {
var self = $(this); // This is the submit button
var identificateur = self.data('identificateur');
var arr = self.data('arr');
var f1 = $('input[name="reception' + arr + '"]').val();
var f2 = $('input[name="client' + arr + '"]').val();
var f3 = $('input[name="cloture' + arr + '"]').val();
var f4 = $('input[name="tag' + arr + '"]').val();
document.location.href = "@Url.Content("/Pages/Index")?identificateur=" + identificateur + "&Pages=1&_reception=" + f1 + "&_cloture=" + f3 + "&_client=" + f2 + "&_tag=" + f4;
});
});
</script>
问题 :
- 重定向不起作用
- 只有在第一个
tr
我才能达到js
功能
用引号传递string parameter
'
,如 'someVal'
,否则你会得到undefined error
更改以下行
onclick="result(@i.ToString(),@Model[1][i].Id ,"1");"
自
onclick="result('@i.ToString()','@Model[1][i].Id' ,"1");"
将调用您的 JavaScript 函数,否则所有渲染的字符串都将被视为变量,如下所示,您将获得someval,someId undefined error
onclick="result(someval,someId ,"1");"
还可以使用 location.href
进行导航
我想我发现了两个错误:
location
应该是
location.href
第二个,尝试在函数前面加上javascript:
:
<input type="submit" onclick="javascript:result(@i.ToString(),@Model[1][i].Id ,"1");" value="Enregistrer"/>
<小时 />或者更好的是,使用带有html5 data-
属性的不显眼的javascript。
<input type="submit" id="Enregistrer" value="Enregistrer" data-reception="@i.ToString()" />
使用以下 JavaScript:
$('#Enregistrer').click(function () {
var self = $(this); // This is the submit button
var reception = self.data('reception'); // Get the data from the attributes.
});
把result()
函数的定义放在$(function(){ /* put it here */ });
里面,而不是简单的<script>
。
还要记住在onclick="result(@i.ToString(),@Model[1][i].Id ,"1");"
中加上撇号而不是引号
当您传递"
"'时。
它应该是
onclick="result(@i.ToString(),@Model[1][i].Id ,'1');"