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

simple の代わりにfunctionの定義をresult()内部に入れます。$(function(){ /* put it here */ });<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 に答える