主题: node api之 prev、next等方法受字符串影响的bug
作者: xuqingkai, 发布日期: 2013-05-20 08:09:16, 浏览数: 2066

操作系统: win7
浏览器版本: ie10
KindEditor版本: 最新版本4.1.7



BUG再现步骤:


HTML1代码:

<input type="text" id="a" name="img"><input type="text" id="b" name="b" value="上传">

HTML2代码:

<input type="text" id="a" name="img">1111111<input type="text" id="b" name="b" value="上传">

 JS代码:

alert(K('#a').next().val());

错误描述:

在HTML1代码下运行,正常,显示出来字符串:“上传”

在HTML2代码下运行,异常,导致js代码中断。

 

个人估计其他相关系列也存在同样的问题

但是jquery没有这个问题,




另外,希望上传按钮UploadButton API能支持多个,有时候我需要客户上传证件图片的时候,需要上传身份证和工作证的,但是按照目前的代码,我必须写2次,能不能有一个好的解决方案处理这个问题

我目前是用的遍历模式,代码如下

K.each(K.toArray(K('input[thumb]')),function(i){

  //遍历所有含thumb属性的按钮,即要点击的那个上传按钮    
  var Kthis=K(this);//把当前按钮保存到Kthis

  var Kprev=Kthis.prev();//获取他前面的input(接收最后的图片地址),关键这个地方,容易出现上诉问题,除非2个input紧挨着才可以,但是有时候必须中间放一些字符串
  var Kupload=K.uploadbutton({

    button:Kthis,

    fieldName:'imgFile',

    url:"../asp/upload_json.asp?dir=image",
    afterUpload:function(data){
      var url=K.formatUrl(data.url,'relative');

      Kprev.val(url);//将最后的图片地址赋值过来
    }
  });

  Kupload.fileBox.change(function(e){Kupload.submit();});
});


作者: Roddy, 发布日期: 2013-09-23 23:03:59
KindEditor的Node API是支持文本Node的,和jQuery不太一样,K(node).prev()等于node.previousSibling。
回复
发表新帖 发表回复