Javascript 如何将jQuery代码放入一个文件中,供所有页面引用?

Javascript 如何将jQuery代码放入一个文件中,供所有页面引用?,javascript,jquery,dom,Javascript,Jquery,Dom,我有一个登录弹出窗口,将弹出在我的网站的每一页。我想做的是,一旦用户单击submit,就有一个JS文件,用于处理该请求的jQuery代码就存在于其中,并进行AJAX调用以验证数据库中的参数 我能让弹出框弹出。表单加载。我认为我的jQuery代码将保存在一个单独的导入文件中,如下所示: <script type="text/javascript" > $(function() { $("input[type=submit]").click(function() {

我有一个登录弹出窗口,将弹出在我的网站的每一页。我想做的是,一旦用户单击submit,就有一个JS文件,用于处理该请求的jQuery代码就存在于其中,并进行AJAX调用以验证数据库中的参数

我能让弹出框弹出。表单加载。我认为我的jQuery代码将保存在一个单独的导入文件中,如下所示:

<script type="text/javascript" >
$(function()
{
    $("input[type=submit]").click(function()
    {
        var some_params= $("#param").val();

        var dataString = 'Some url to send to ajax';

        if( params validated ok )
        {
            $('.success').fadeOut(200).hide();
            $('.error').fadeOut(200).show();
        }
        else
        {
            $.ajax({
                type: "POST",
                url: "/problems/add_problem.php",
                dataType: "json",
                data: dataString,
                success: function(json)
                {
                    $('.success').fadeIn(200).show();
                    $('.error').fadeOut(200).hide();    
                }
            });
        }

        return false;
    });
});
</script>

$(函数()
{
$(“输入[type=submit]”。单击(函数()
{
var some_params=$(“#param”).val();
var dataString='要发送到ajax的一些url';
如果(参数已验证正常)
{
$('.success').fadeOut(200.hide();
$('.error').fadeOut(200.show();
}
其他的
{
$.ajax({
类型:“POST”,
url:“/problems/add_problem.php”,
数据类型:“json”,
数据:dataString,
成功:函数(json)
{
$('.success').fadeIn(200.show();
$('.error').fadeOut(200.hide();
}
});
}
返回false;
});
});
所以我的问题是,我如何使它仅在提交正确的表单时才被调用?表单应该有一些id=“some\u name”,但我真的不明白如何使jQuery代码仅在调用表单元素时执行

这是我要在弹出窗口中显示的表单:

<?php
         echo '<div id="login_div">
         <form id="login_form" method="post" action="">
         <p>
             <label for="name"><span>Your Email:</span></label> <input type="text" name="email" />
         </p>
         <p>
             <label for="name"><span>Your Password:</span></label> <input type="password" name="user_pass">
         </p>
         <p>
            <input type="submit" value="Log In"  />
         </p>
         </form>
         </div>


<p>
    <a href="http://www.problemio.com/auth/create_profile.php">Create Account</a> | <a href="http://www.problemio.com/auth/forgot_password.php">Reset Pass</a>
</p>
         ';
?>

下面是jQuery处理登录表单提交的problemio.js内容:

// javascript library

// login_form

$(function()
{
    $("#login_form input[type=submit]").click(function()
    {
        console.log("test");
        alert("1");
//      var name = $("#problem_name").val();
//      var problem_blurb = $("#problem_blurb").val();

//      var dataString = 'problem_name='+ name + '&problem_blurb=' + problem_blurb;

//      if(name=='' || problem_blurb == '')
//      {
//          $('.success').fadeOut(200).hide();
//          $('.error').fadeOut(200).show();
///     }
//      else
//      {
//          $.ajax({
//              type: "POST",
//              url: "/problems/add_problem.php",
//              dataType: "json",
//              data: dataString,
//              success: function(json)
//              {
//                  $('.success').fadeIn(200).show();
//                  $('.error').fadeOut(200).hide();
//                  
///                 // Here can update the right side of the screen with the newly entered information
//                  //alert (json);
//          
//                  new_string = "<h2>Most Recently Added Problems</h2>";

                    // Have to figure out how to make this work with the DOM.

//              }
//          });
//      }

        return false;
    });
});
//javascript库
//登入表格
$(函数()
{
$(“#登录_表单输入[type=submit]”)。单击(函数()
{
控制台日志(“测试”);
警报(“1”);
//变量名称=$(“#问题名称”).val();
//var problem_blurb=$(“#problem_blurb”).val();
//var dataString='problem_name='+name+'&problem_blurb='+problem_blurb;
//如果(名称=“”| |问题_模糊=“”)
//      {
//$('.success').fadeOut(200.hide();
//$('.error').fadeOut(200.show();
///     }
//否则
//      {
//$.ajax({
//类型:“POST”,
//url:“/problems/add_problem.php”,
//数据类型:“json”,
//数据:dataString,
//成功:函数(json)
//              {
//$('.success').fadeIn(200.show();
//$('.error').fadeOut(200.hide();
//                  
/////此处可以使用新输入的信息更新屏幕右侧
////警报(json);
//          
//new_string=“最近添加的问题”;
//必须弄清楚如何使用DOM实现这一点。
//              }
//          });
//      }
返回false;
});
});
您可以使用将处理程序附加到表单提交事件。首先,您需要通过id选择您的表单:

$("#some_form_id").submit(function() {
    // the code you have in the click event above goes here.
});
可以使用将处理程序附加到表单提交事件。首先,您需要通过id选择您的表单:

$("#some_form_id").submit(function() {
    // the code you have in the click event above goes here.
});

两件事。首先,当您将上面的代码放入一个单独的javascript文件中时,请确保删除和HTML标记

接下来,更改以下行:

$("input[type=submit]").click(function()
而是说:

$("#loginform input[type=submit]").click(function()

然后在标签上设置id=“loginform”。

两件事。首先,当您将上面的代码放入一个单独的javascript文件中时,请确保删除和HTML标记

接下来,更改以下行:

$("input[type=submit]").click(function()
而是说:

$("#loginform input[type=submit]").click(function()

然后在标签上设置id=“loginform”。

您可以指定要触发jquery的表单

您可以指定要触发jquery的表单

如果您不确定,只需右键单击此网页并阅读其html代码

而且,将函数绑定到form.submit比绑定到submit按钮要好得多


$('formid')。提交(function(){blablabla;return false;})
如果您不确定,只需右键单击此网页并阅读其html代码

而且,将函数绑定到form.submit比绑定到submit按钮要好得多


$('formid').submit(function(){blablabla;return false;})
如果要在不使用ID的情况下处理页面上每次提交的单击事件,如果您希望在不使用ID的情况下为页面上的每次提交处理单击事件,则始终可以在单击事件中使用
this
关键字来查找发件人,然后查找父级
表单,您可以在单击事件中始终使用
this
关键字来查找发件人,然后查找父级
表单

谢谢-这将放在我的jQuery代码中,而不是其他代码?我将把它放在哪里?替换当前行
$(“输入[type=submit]”)。用示例代码的第一行单击(function(){
。这应该是所有必要的。谢谢-这将放在我的jQuery代码中而不是其他代码中?我将把它放在哪里?替换当前行
$(“输入[type=submit]”)。单击(function()) {
我的示例代码的第一行。这应该是所有必要的。所以,真的,在提交有效表单之前,您不希望脚本“可用”/加载吗?我不想麻烦。它足够小,可以包含在您的应用程序中,而不必费事。不过,我会将它包装成一个调用conditiona的函数是的,而不是盲目地将点击绑定到所有提交输入。所以,你真的不想在提交有效表单之前让脚本“可用”/加载吗?我不想麻烦。它足够小,可以包含在你的应用程序中而不必费事。不过,我会将它包装成一个有条件调用的函数,而不是只是盲目地将点击绑定到所有提交输入。我就是这么做的,我得到了