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;
}

ここには 3 つの var 関数があります。配列変数を渡したいときに、AJAX で渡されないのは奇妙だと思います。

コードを実行する方法は次のとおりです (これは $(document).ready(); で宣言されています)。上記のコードは別のファイルに保存されます。

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

結果:

配列 ( [呼び出し] => 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/

問題は、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;
    });
});
​
于 2012-05-21T11:38:55.753 に答える