0

我有一个 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>

问题:

  1. 重定向不起作用
  2. 只有在第一个tr我才能达到js功能
4

3 回答 3

2

像这样传递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用于导航

于 2013-10-08T09:45:42.930 回答
1

I think I spotted two errors:

location

should be

location.href

And the second, try to prefix the function with javascript::

<input type="submit" onclick="javascript:result(@i.ToString(),@Model[1][i].Id ,"1");" value="Enregistrer"/>


Or even better, use unobtrusive javascript with html5 data- attributes.

<input type="submit" id="Enregistrer" value="Enregistrer" data-reception="@i.ToString()" />

With the following JavaScript:

$('#Enregistrer').click(function () {
    var self = $(this); // This is the submit button
    var reception = self.data('reception');   // Get the data from the attributes.
});
于 2013-10-08T10:00:33.640 回答
1

result()function 的定义放在里面$(function(){ /* put it here */ });而不是 simple <script>

还记得在里面加上撇号而不是引号onclick="result(@i.ToString(),@Model[1][i].Id ,"1");"

当你通过"“`.

它应该是

onclick="result(@i.ToString(),@Model[1][i].Id ,'1');"
于 2013-10-08T09:44:30.157 回答