按钮和ajax帖子有问题

时间:2013-04-14 09:57:39

标签: jquery cordova jquery-mobile button

我想问两个问题。 webapp应该通过POST(ajax)发送“somedata”,然后将返回的数据从服务器放入div。我使用jQuery,jQuery mobile和phonegap。所以HTML看起来像这样:

<div id="searchingform">
    <form method="post" id="sform">
        <input type="text" name="group" id="somedata" value="" placeholder="Enter SOMEDATA that will be posted to the server"/>
        <div id="buttoncover">
            <input type="button" id="loadbut" value="Load" data-mini="true" onClick="sendPost();">
        </div>
    </form> 
</div>
<div id="cnt"></div>
<div id="output"></div>

这是JS代码:

function sendPost() {
    $.ajax({
        type:'post',
        url:'http://thepagethatanswers.com',
        data:{'group':$('[name=somedata]').val()},
        response:'html',
        success:function (data) {
            $('#cnt').html(data);
        },
        error: function(){
        $('#output').html('Error');
        }
    });
};

因此,用户填写表单,按下按钮,将其发送到服务器,答案填入#cnt div。通常它可以工作但是:

1.按下按钮后,它仍保持按下状态。它工作,但有按下按钮的外观。 jQuery做了那个

<div data-corners="true" data-shadow="true" data-iconshadow="true" data-wrapperels="span" data-theme="b" data-mini="true" data-disabled="false" class="ui-btn ui-shadow ui-btn-corner-all ui-mini ui-btn-up-b" aria-disabled="false">
    <span class="ui-btn-inner">
        <span class="ui-btn-text">Load</span>
    </span>
    <input type="button" id="loadbut" value="Load" data-mini="true" onclick="sendPost();return true;" class="ui-btn-hidden" data-disabled="false">
</div>

<input type="button" id="loadbut" value="Load" data-mini="true" onClick="sendPost();">

我试图显示.removeclass('ui-btn-active'),但它没有效果。我试图完全重写按钮,它使它看起来像不活动,但它没有魔杖看起来像推动一个。我只需要能够在外观方面表现出正常的行为。

2.需要从表单重新发送'somedata'以更新信息并将其加载到#cnt中。这是我的第二个问题:直到表格中的'somedata'没有更改为其他值,POST不会发生。示例:我们在输入中输入“1”,按下按钮,得到答案,它填充#cnt - 这没关系。然后我们再次按下按钮以更新信息,没有任何反应。更改输入值,按下按钮 - 它会根据新的输入值更新#cnt。我需要它能够多次按下该按钮,它将发送相同的值并获得正确的#cnt。服务器代码非常复杂,但事实上它只是获取$_POST['somedata']然后返回html。

UPD:刷新ajax请求的解决方案:我添加了另外一个变量的数据,现在它看起来像这样:

data:{'group':$('[name=group]').val(),tstamp: new Date().getTime()}

因此每次都会发送请求,data会刷新。

1 个答案:

答案 0 :(得分:1)

1)您始终可以使用以下方法重新定义此课程:内联风格。或者查看this post

2)根据ajax documentation将缓存设置为false。