0

質問したい問題が2つあります。webapp は、POST (ajax) 経由で「somedata」を送信し、サーバーから返されたデータを div に配置する必要があります。jQuery、jQuery モバイル、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. 情報を更新して#cnt. そして、ここに私の2番目の問題があります.フォームの「somedata」が他の値に変更されない限り、POSTは発生しません。例: 入力に "1" を入力し、ボタンを押して、答えを取得します#cnt。次に、情報を更新するためにボタンをもう一度押しますが、何も起こりません。入力の値を変更し、ボタンを押します -#cnt入力の新しい値に従って を更新します。ボタンを何度も押すことができるようにする必要があり、同じ値を送信して正しい値を取得します#cnt。サーバー コードは非常に複雑ですが、実際には を取得して$_POST['somedata']html を返すだけです。

UPD: ajax リクエストを更新するための解決策: 送信されたデータにもう 1 つの変数を追加したところ、次のようになりました。

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

したがって、リクエストは毎回送信され、data更新されます。

4

1 に答える 1

1

1) このクラスは、インライン スタイルなどを使用していつでも再定義できます。または、この投稿を参照してください。

2) ajax のドキュメントに従って、キャッシュを false に設定します。

于 2013-04-14T10:30:14.460 に答える