2012-07-10 67 views
1

我这里有一个的jsfiddle:http://jsfiddle.net/rDe9V/jQuery:如何使ajax调用后端,而不是按钮单击提交表单?

重现步骤:

  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); 
    }); 
}); 

请理解为什么这是行不通的帮助。


UPDATE

因此不会允许让更多的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); 
     }); 
    }); 

所需

  • 在按一下按钮,不应该张贴形式

+0

控制台中有很多错误。 – Utkanos 2012-07-10 18:45:46

回答

1

“新”bu tton正在提交一份表格。

您必须杀死提交该表单的事件,否则将提交该表单并且您的页面将自行刷新,发布(或获取)表单数据。

+0

感谢提到,请参阅更新,关于我的要求是什么,可能你对如何实现这一点有一个公平的想法,请咨询 – daydreamer 2012-07-10 18:50:00

+0

@daydreamer提出一个新问题。 SO是**不是**调试服务。你不能只用新的问题来更新你的问题。 – Neal 2012-07-10 18:51:32

+0

好的@Neal,会做到的 – daydreamer 2012-07-10 18:52:06

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; 
      } 

     });}); 
相关问题