当我在rails中使用ajax时,.submit不起作用

时间:2015-05-29 10:10:40

标签: javascript jquery ruby-on-rails ajax

我建立了一个网站,
用户需要注册他们的信息和“特殊密钥”
如果他们没有输入密钥,他们将是普通用户 如果他们使用正确的密钥,他们将是超级用户 但如果密钥错误,他们将无法通过,直到他们使用正确的

密钥使用ajax来控制控制器 并返回json {status:“ok”}或{status:“error”}

这是我的代码

$('#btn').click(function(e){
    if(keystring.length > 0){
        $.ajax({
        type: "POST",
        url: "check",
        data: { key:keystring  },
        dataType:'json',
        async:false,
        success: function( datajson ) {
            if(datajson.status == "wrong"){
                alert("wrong, please input the right key");
            }else{
                $('#confirm').submit();
            }
        }
        });
     }else{
          $('#confirm').submit();
     }
});

问题是 如果我输入右键或没有键 $( '#确认')提交()。不会执行!!

为什么?

提交将在不使用ajax时执行

感谢您的帮助 这是我的控制器

def check
    @key = KeyChain.find_by({ code: params["key"]})
    if @user_info.present?
        datajson = { status:"ok" }
    else
        datajson = { status:"wrong"}
    end
    respond_to do |format|
     format.json {
        render :json => datajson.to_json 
     }
    end
end

1 个答案:

答案 0 :(得分:0)

keystring的价值是多少?它是定义的,是字符串,它是否存在于闭包内?尝试使用keystring显示alert的值以查看是否正常。

$('#btn').click(function(e){
alert(keystring);
if(keystring.length > 0){
    $.ajax({
    type: "POST",
    url: "check",
    data: { key:keystring  },
    dataType:'json',
    async:false,
    success: function( datajson ) {
        if(datajson.status == "wrong"){
            alert("wrong, please input the right key");
        }else{
            $('#confirm').submit();
        }
    }
    });
 }else{
      $('#confirm').submit();
 }
});