0

我有两个问题想请教。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');
        }
    });
};

所以用户填写表单,按下按钮,发送到服务器,然后将答案填写到#cntdiv 中。通常它可以工作,但是:

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刷新。

4

1 回答 1

1

1) 您总是可以使用例如内联样式重新定义此类。或者看这个帖子

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

于 2013-04-14T10:30:14.460 回答