0

私はいくつかの醜いことをする必要があります。しかし、私はそれを別の方法で行うことはできません。必要なのは

<a href='some/url/?with&params' onclick="(if confirm('Do you wanna submit?')
    {some code to submit form in href property})">  

しかし、インラインスクリプトを機能させる方法がわかりません...そしてwindow.locationまたはdocument.locationでそれを送信する方法について躊躇しています。何か案は?

4

2 に答える 2

1

これを試して:

HTML上:

<a href='some/url/?with&params' onclick="if (confirm('Do you wanna submit?')) return MyValidation.actionSubmit();">Submit</a>

<script type="text/javascript" src="myValidation.js" />

myValidation.js

この回答では、 を使用しました。

; //starts with this to close other js not yet closed
var MyValidation = {

    actionSubmit : function() {

            //your code go here

            //example of calling another function
            MyValidation.anotherFunction();

            //example of accessing a global variable (for your validation)
            MyValidation.variable;

            //example of declaring local variable
            var word = "hello";

            //example of calling another function with parameters
            MyValidation.anotherFunctionWithParameters(word, MyValidation.variable);

            //the returning
            return MyValidation.someValidation(word);
    }

    //Yes, this is a comma. 
    //I'm putting in the beginning so we see this and didn't forget :)
    ,anotherFunction : function() {

            //some code
            //maybe a return
    }

    ,variable : {}

    ,anotherFunctionWithParameters : function(param1, param2) {

            //more code, maybe a return
    }

    ,someValidation : function(parameter) {
        //some validation
        return true|false;
    }

};

これを見てください:

  1. JavaScriptクロージャはどのように機能しますか?
于 2013-01-25T11:33:01.567 に答える
0

AJAXについて聞いたことがありますか?そうでない場合はグーグルで検索してください。onClickパラメーターは、「インラインスクリプト」ではなく、パラメーターの有無にかかわらず関数名を受け入れます。

<script type=text/javascript>
  function doStuff(){
      if(confirm("Submit?"){
       //do your stuff with AJAX to some/url/?with&params

     }
  }
</script>
<a href='javascript:doStuff'>link</a>
于 2013-01-25T11:40:29.300 に答える