1
var reguser = function(btn,url,form_data,op) {
    $(btn).click(function(){
        postLoad(url,form_data,op);
        return false;
    });
}

var postLoad = function(url,form_data,op,fade) {
    $.post(base_url(url),form_data,function(q){$(op).html(q);});
}

var getVal = function(link) {
    return $(link).val();
};

var base_url = function(link) {
    return 'http://localhost/cw/' + link;
}

我这里有三个 var 函数。我觉得奇怪的是,当我想传递一个数组变量时,它没有在我的 AJAX 中传递。

这是我执行代码的方式(这已在 $(document).ready(); 中声明)。上面的代码存储在一个单独的文件中。

reguser('#add-acct','ctrl_register/AJAXreguser',{call:1,fname:getVal('#fname')},'#acct-detail');

结果:

数组 ( [call] => 1 [fname] => )

表格代码

    <form action="http://localhost/cw/ctrl_register" class="form-vertical" method="post" accept-charset="utf-8">
<label for="fname">First Name</label>
    <input type="text" name="fname" value="" class="span8 input-small"id="fname" placeholder="First Name" />
    <label for="mname">Middle Name</label>
<input type="text" name="mname" value="" class="span8 input-small"id="mname" placeholder="Middle Name" />
<label for="lname">Last Name</label>
<input type="text" name="lname" value="" class="span8 input-small"id="lname" placeholder="Last Name" />
<label for="user">Username</label>
<input type="text" name="user" value="" class="span8 input-small"id="user" placeholder="Username" />
<label for="pass">Password</label>
<input type="password" name="pass" value="" class="span8 input-small"id="pass" placeholder="Password" />
<label for="pass2">Confirm Password</label>
<input type="password" name="pass2" value="" class="span8 input-small"id="pass" placeholder="Confirm Password" />
</br><input type="submit" name="Add-acct" value="Add Account" class="btn btn-primary" id="add-acct" />
</form>

在此处输入图像描述

4

1 回答 1

2

此代码适用于我:http: //jsfiddle.net/flocsy/WC336/1/

问题是,在注册用户中,您想为您传递的按钮注册 onclick,但在同一调用中,您传递了 fname.val(),它是空的,因为您尚未填写它。

解决方案是从寄存器中删除 onclick 并将其放在 document.ready 中:

var reguser = function(btn,url,form_data,op) {
    console.log(form_data);
//    $(btn).click(function(){
        postLoad(url,form_data,op);
        return false;
//    });
};


$(document).ready(function(){
    $("#add-acct").on("click",function(){
        var fn=getVal('#fname');
        var dat = {'call':1,'fname':fn};
        reguser('#add-acct','ctrl_register/AJAXreguser',dat,'#acct-detail');
        return false;
    });
});
​
于 2012-05-21T11:38:55.753 回答