1

私はここにjsfiddleを持っています:http://jsfiddle.net/rDe9V/

再現する手順 :

  1. テキストボックスに入力
  2. [プレイリストに追加]をクリックして、テキストボックスにテキストを追加します
  3. 「新規」をクリックします

警告ボックスが機能していないようです。関連するjQuery関数はここにあります

$(function() {
    $('form input[type="text"]').live('keyup', function() {
        var val = $.trim(this.value);
        $('form .create-playlist-button').prop('disabled', val.length == 0)
    });
    $('form .create-playlist-button').click(function(e) {
        var title = $(e.target).closest('.video-detail').find('.title').text();
        alert(title);
    });
});

これが機能しない理由を理解するのに役立ちます。


アップデート

SOは、1日あたり6つ以上の質問をすることを許可していません。だから私はここで更新しています

私はフィドルに変更を加えました、それは今ここにあります-http://jsfiddle.net/rDe9V/2/

   $('form input[type="text"]').live('keyup', function() {
        var val = $.trim(this.value);
        $('form .create-playlist-button').prop('disabled', val.length == 0).click(function(e){
            var title = $(e.target).closest('.video-detail').find('.title').text();
            alert(title);
        });
    }); 

必要

  • ボタンをクリックすると、フォームをPOSTしないでください

4

2 に答える 2

1

「新規」ボタンはフォームの送信です。

そのフォームを送信するイベントを強制終了する必要があります。そうしないと、フォームが送信されてページが更新され、フォーム データが投稿 (または取得) されます。

于 2012-07-10T18:43:14.520 に答える
0

クリック イベントが登録されていないため、ボタンを送信ではなくボタンとして定義する必要があります。

var clickAdded = false;

// creating new playlist
$(function() {
        $('form input[type="text"]').live('keyup', function() {
            var val = $.trim(this.value);
            $('form .create-playlist-button').prop('disabled', val.length == 0);
            if (val.length > 0 && !clickAdded) {
                $('form .create-playlist-button').click(function(e){
                     var title = $(e.target).closest('.video-detail').find('.title').text();
                     alert(title); return false;
                 });
                clickAdded = true;
            }

        });});
于 2012-07-10T18:55:28.477 に答える