jquery$.post在某些浏览器中不起作用

jquery$.post在某些浏览器中不起作用,jquery,post,Jquery,Post,php只有: $(document).ready(function(){ $("#btnc").click(function(){ $.post("php/snova_campanha.php", {campanha : $("#campanha").val() }, function(data){ if(data == "1" ) {

php只有:

 $(document).ready(function(){
     $("#btnc").click(function(){
            $.post("php/snova_campanha.php", {campanha : $("#campanha").val() },
                function(data){
                    if(data == "1" )
                    {
                        alert(data);
                    }
                    else
                        alert(data);
                });
     });
});
HTML





乌苏瓦里奥

森哈
我看不出有什么不同。。。。。。。。。 当我运行非工作代码时,浏览器上的地址会更改为www.myaddress.com/current_page.php?campanha=value_on_textfield 似乎$.post正在当前页面上发出GET请求。。。 这两种代码都适用于IExplore 工作页面可以在chrome和IE上使用,但不能在firefox上使用。。。。
有什么想法吗?

如果目的是不允许按钮发布表单,那么按钮的
单击事件应该返回
false

实际上,
返回false
在jQuery事件处理程序中有一些副作用,大多数人都没有意识到。如果您只想阻止表单提交,那么应该使用
event.preventDefault()

为了让您的生活更轻松,我建议您将PHP文件更改为返回json,如下所示:

<div id="bar">
    <div id="container">
        <!-- Login Starts Here -->
        <div id="loginContainer">
            <img id="logoNetradio" src="../images/logonetradio3.png"/>
            <br/><br/><br/>
                <form id="formLogin">
                    <label for="usuario">Usuário</label>
                    <input align="middle" size="35" type="text" name="usuario" id="usuario"/>
                    <br/><br/>
                    <label for="senha">Senha</label>
                    <input align="middle" size="35" type="password" name="senha" id="senha" />
                    <br/>
                    <input type="submit" id="login" value="Login"/>
                </form>
        </div>
        <!-- Login Ends Here -->
    </div>
</div>
此外,我还建议您调查一下,这会考虑到您在这里要做的大部分事情

最后,您可以尝试使用完整的
$.ajax
调用,而不是
$。post

$(document).ready(function(){
     $("#btnc").click(function(evt){
            $.post(
                "php/snova_campanha.php", 
                {campanha : $("#campanha").val() },
                function(data){
                   alert(data.status);
                },
                "json"
            );
            // Keep the form from submitting
            evt.preventDefault();
     });
});

可能发生的情况是,
$.post
调用抛出了一个错误。如上所述使用
$.ajax
将允许您捕获该错误。

您使用的是什么版本的jQuery?此外,为了测试.post()是否实际不起作用,您应该发出警报(数据类型);作为回调函数的第一行。如果您有firebug,可能值得使用console.log而不是alert。如果我在回调方法中添加任何警报(任何东西),它都不会显示。切换禁用属性的正确方法是调用$(“#login”).prop(“disabled”,true);--布尔属性现在应该使用.prop(),如jquery 1.6.1变更日志中所述。我刚刚打开firebug,看到来自php的请求和响应都很好…….没有被调用的回调函数我希望按钮执行post请求。。。我试图在点击事件中添加“return false”,但没有work@fredcrs您确定返回是回调的最后一行吗?Return将在超过该点时停止该函数的执行。@fredcrs不,我想你不明白。该按钮将运行您启动的$.post命令,但整个过程都在一个表单中,该表单将发布表单本身。我的答案是错的。。。我忘记了这一点,因为我在启动ajax命令时不使用input[type=submit]。Bryan Ross使用event.preventDefault()来阻止表单本身被提交是正确的。好的,我明白了。请求做得很好,在firebug中,我收到了PHP的答案,现在是JSON,就像Bryan Ross告诉我的那样…但是回调函数仍然没有被调用…它不再执行GET,但是帖子仍然没有做postgreat插件,我现在就试试我更改了代码,打开firebug并看到请求和回复正在工作,但没有调用回调函数
 $(document).ready(function(){
     $("#login").click(function(){
        $("#login").attr("disabled", "disabled");
                $.post("php/slogin.php", {usuario : $("#usuario").val(), senha : $("#senha").val()},
                function(data){
                    if(data != "1" && data != "0")
                    {
                        alert(data);
                        $("#login").removeAttr("disabled");
                    }
                    else
                        window.location = "principal.php";
                });
     });
});
<div id="bar">
    <div id="container">
        <!-- Login Starts Here -->
        <div id="loginContainer">
            <img id="logoNetradio" src="../images/logonetradio3.png"/>
            <br/><br/><br/>
                <form id="formLogin">
                    <label for="usuario">Usuário</label>
                    <input align="middle" size="35" type="text" name="usuario" id="usuario"/>
                    <br/><br/>
                    <label for="senha">Senha</label>
                    <input align="middle" size="35" type="password" name="senha" id="senha" />
                    <br/>
                    <input type="submit" id="login" value="Login"/>
                </form>
        </div>
        <!-- Login Ends Here -->
    </div>
</div>
<?php
echo "{'status':'0'}";
?>
$(document).ready(function(){
     $("#btnc").click(function(evt){
            $.post(
                "php/snova_campanha.php", 
                {campanha : $("#campanha").val() },
                function(data){
                   alert(data.status);
                },
                "json"
            );
            // Keep the form from submitting
            evt.preventDefault();
     });
});
$('#btnc').click(function(evt) {
   $.ajax({
       method: 'POST',
       url: 'php/snova_campanha.php',
       data: {
           campanha: $('#campanha').val()
       },
       dataType: 'json',
       success: function(data, status) {
           alert(data);
       },
       error: function(jqXHR, status, err) {
           alert('ERROR');
           alert(String(err));
       }
   });
   evt.preventDefault();
});