当检测到某个条件/事件时执行onChange jQuery

时间:2013-10-27 16:24:25

标签: javascript php jquery

好吧..我有一个捕获paste事件的输入框,并检查粘贴的文本/字符串是否是youtube url。如果是,它会将数据转发给某些PHP进行处理..

结果json数据显示在$('.printdata').append(response);

关注:

  1. 我的代码中没有的是识别整个文本还是 删除/剪切/删除youtube链接。它也应该删除 显示数据。

  2. 接受第一个youtube网址,如果找到多个youtube网址,请将第一个链接发送给PHP,然后忽略其他链接,只显示为文本。

  3. 我的解决方法

    1. 我在想什么(不确定)是放一些onchange()事件 识别$("$input")元素的地方正在改变。

    2. 仅接受一个paste事件,如果重复paste()则忽略该事件。 - 不确定这是否是正确的做法。

    3. http://jsfiddle.net/8Pvr4/4/

      测试我试图解释的内容,在文本字段中输入任何youtube网址,它应该显示一些东西。

      然后删除网址,数据仍然存在。或者连续添加另一个URL。结果数据将叠加。

      $(document).ready(function() {  
           //some regex
      $("#input").bind('paste', function(e) {
          var val = undefined;
      
          //get pasted data
          if(window.clipboardData && window.clipboardData.getData) {
              val = window.clipboardData.getData('Text');
          } else if (e.originalEvent.clipboardData && e.originalEvent.clipboardData.getData){
              val = e.originalEvent.clipboardData.getData('text/plain');
          }
              //check for youtube URL
              if (youtube.test(val)) {
                  var yurl = val.match(youtube)[0];
                  $.post("youtubejson.php?url="+ yurl, {
                      }, function(response){
                      $('.printdata').append(response);
              });     
          }
      });
      

1 个答案:

答案 0 :(得分:1)

我不确定我是否理解你的问题,但我猜你的结果是堆叠而不是被替换,你可以使用.html(响应)代替.append(响应)来停止堆叠。