1

以下のコードを変更して、送信ボタン付きのテキスト入力タイプの代わりに、それぞれ独自の値を持つ複数の送信ボタンが必要な場合はどうすればよいですか?私が試したものはすべて、submitの値が未定義になってしまいます。どんな助けでも素晴らしいでしょう!

コードソース:検索クエリを送信し、更新せずに検索結果を取得する

<script type="text/javascript">
    $(function() {
        $("#lets_search").bind('submit',function() {
            var value = $('#str').val();
            $.post('db_query.php',{value:value}, function(data){
                $("#search_results").html(data);
            });
            return false;
        });
    });
</script>

<form id="lets_search" action="" >
    Search:<input type="text" name="str" id="str">
    <input type="submit" value="send" name="send" id="send">
</form>
4

5 に答える 5

2

onclick複数の送信ボタンを追加して、それらすべてにイベントリスナーをアタッチできます。ボタンがクリックされたとき-値を取得し、POSTリクエストで送信します。

<script>
$(function(){
    $('input[type=submit]').click(function(){
        $.post('db_query.php', {value:$(this).val()}, function(data){
            $("#search_results").html(data);
        });
        return false;
    });
});
</script>
<form id="lets_search" action="">
    <input type="submit" name="button1" value="hi"/>
    <input type="submit" name="button2" value="bye"/>
</form>
于 2012-07-28T08:18:23.933 に答える
1

複数の送信ボタンを使用する場合は、クリックイベントをキャッチして、どのボタンがクリックされたかを判別できます。次に、別のAjax送信を実行します。これenterは、ヒットしたときにも機能します。

//submit buttons
<form id="lets_search" action="" >
    Search:<input type="text" name="str" id="str" />
    <input type="submit" value="v1"/>
    <input type="submit" value="v2"/>
    //...more submit buttons
</form>    

//submit func
$(function() {
    $("#lets_search input[type=submit]").click(function() {
         switch  ($(this).val){
             case 'v1':...;
             case 'v2':...
         }
    });
});
于 2012-07-28T08:12:53.390 に答える
0

これが私のバージョンです-私が彼のバージョンをテストしている間に書かれたので、今ではBingjiesに非常によく似ています

デモ

<form id="lets_search" action="" >
Search:<input type="text" name="q" id="q">
<input type="submit" value="Google" name="send" id="google">
<input type="submit" value="Bing" name="send" id="bing">
</form>

$(function() {
  $("#lets_search input[type=submit]").click(function() {
    switch  ($(this).val()) {
        case "Bing" :
            $("#lets_search").attr("action","http://www.bing.com/search");
            break;

        case "Google":
            $("#lets_search").attr("action","https://www.google.com/search");
            break;
    }        
  });
});
于 2012-07-28T08:43:16.357 に答える
-1

フォームに複数の送信ボタンを含めることができます。問題ありません。それらは同じ名前、タイプなどを持っているかもしれませんが、それらに異なる値を割り当てるだけです。送信ボタン1はvalue="hi"を持つことができ、ボタン2はvalue="bye"を持つことができます。

次に、ボタンに対してアクション関数が呼び出されたときに、関数に入るときに行う必要があるのは、$(this).valでチェックすることだけです。

HTML:

<input type="submit" name="button1" value="hi"/>
<input type="submit" name="button2" value="bye"/>

jQuery:
$(function() {
    $("#lets_search").bind('submit',function() {
        var value = $(this).val();

        if(value == "hi")
            do_something;
        else
            do_something_else;
    });
});
于 2012-07-28T07:39:06.543 に答える
-1

ここで、私はVamsiのソリューションを好みますnなぜSanjeev mkではないのですか?

解決策を好むことについて、もう少し考えてみてください。

ケース:複数の送信ボタンがある場合

ユーザーがテキストフィールドにいてEnterキーを押すと、システムは最初の送信ボタンが押されたと見なします。

したがって、ここでは、エンドユーザーの観点から複数の送信ボタンがないようにするのがよいでしょう。

于 2012-07-28T07:48:13.567 に答える