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>
答案 0 :(得分:2)
此代码适用于我: http://jsfiddle.net/flocsy/WC336/1/
问题在于,在reguser中你想为你传递的按钮注册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;
});
});