0

jspページのボタンがクリックされたかどうかを確認する必要があります。

私は1つのjspページと2つのjavascriptページを持っています。最初の JSP ページは、ユーザーからの入力を受け取り、javascript1 に送信するインデックスです。次に、javascript1 にクエリを実行し、各出力にボタンが埋め込まれたインデックス ページに出力します。私が望むのは、ユーザーが特定のボタンをクリックすると、javascript2 がクリックを検出し、その特定のボタンの値を次の検索クエリとして取得し、結果を再びインデックス ページに表示することです。

これが私のコードです:

INDEX.JSP

<div>Please enter search keyword</div>
<input type="text" name="valueLiteral" class="input-box"/><br>
<input type="submit" name="indexsearch" value="Search" class="input-button">

入力名「indexsearch」がクリックされ、値名「valueLiteral」を取得して結果を照会すると、javascript1 が検出します。この部分は問題なく動作します。

Javascript1.js のコードは次のとおりです。

$(document).ready(function() {
$("#result").hide();
$("input[name='indexsearch']").click(function() {
    and so on.......
    var stmt = [];

     $.each(arrayPredicate, function(k,v){
     stmt[k] = "<span class='subject' id="+arraySubject[k]+">" + arraySubject[k] + "</span> " + " -> " + v + " : "+ "<span class='object'>" + arrayObject[k] + "</span>" + "**<input type = 'submit' class = 'searchAgain-button' name = 'searchMore' value = " + arrayObject[k] + "></input>**<br><br>";
     });
            stmt = stmt.sort();
            $.each(stmt, function(k,v){
                $("#result").append(v);
            });
        } else {
            var $noresult = "No Result : Please enter a query";
            $("#result").append($noresult);
        }
    });

ご覧のとおり、ボタンを作成し、各検索結果の末尾に追加しました。この部分は引き続き機能します (ボタンが表示され、次のクエリの名前が表示されます)。

コードの最後の部分は次のとおりです: Javascript2.js:

    $(document).ready(function() {
    $("input[name='searchMore']").click(function() {

    $("#result").show();
    $("#result").empty();

    loading_img();
    var $textInput = $(this).attr("Value");

            var stmt = [];
            //concat all related array into string (create triple statement)
            $.each(arrayPredicate, function(k,v){
                stmt[k] = "<span class='subject' id="+arraySubject[k]+">" + arraySubject[k] + "</span> " + " -> " + v + " : "+ "<span class='object'>" + arrayObject[k] + "</span><input type = 'submit' class = 'searchAgain-button' name = 'searchMore' value = " + arrayObject[k] + "></input><br><br>";
            });
            stmt = stmt.sort();
            $.each(stmt, function(k,v){
                $("#result").append(v);
            });
        } else {
            var $noresult = "No Result : Please enter a query";
            $("#result").append($noresult);
        }
    });        
});

上記のコードは機能しません。いくつかのテストの結果、この JavaScript ページはボタン名「searchMore」を検出できないと思います。そして最終的にコードの他の部分が機能しなくなります。

なにか提案を??

4

1 に答える 1

0

試してみましたか

$("input[name='searchMore']").live("click", function() { ...

?

http://api.jquery.com/live/

説明: 現在および将来において、現在のセレクターに一致するすべての要素のイベント ハンドラーをアタッチします。

于 2012-08-16T00:57:32.420 に答える