2012-03-29 63 views
0

我想在重复时为img标记验证文本区域。例如,如果我用src输入图像标签,我应该再次输入带有标签的同一个源代码,我需要显示警报如何完成。我的代码片断检查图像是否存在。但我需要做以上验证也...JavaScript中用于HTML图像标记的文本区域验证

function validateEditor() { 

    var editor_val = $('#asset_html').val(), iSrc; 

    // Check for empty string 
    if(!string_IsEmpty(editor_val)) { 

     // Check whether img is available 
     if(editor_val.match(/img/g)) { 

      var src_cnt = (editor_val.match(/img/g).length); 
      //console.log(editor_val.match(/src/g).length); 

      $('#asset_html_preview').html(editor_val); 

      for(var j = 1; j <= src_cnt; j++) { 

       if($('#asset_html_preview img:nth-child(1)').attr('src')) { 

        iSrc = $('#asset_html_preview img:nth-child(1)').attr('src'); 

        if(iSrc.indexOf('http://') != -1) { 

         $('#asset_html_preview img:nth-child(' + j + ')') 
          .error(function() { alert('Check ur image src'); }); 
         //break; 

        } 
       } 
      } 
     }  
    } 
} 
+0

你试试PLZ说明了什么? – 2012-03-29 11:06:48

+0

@ Shreekhanal编辑plz检查 – user1051599 2012-03-29 11:10:52

回答

1

你可能会寻找这样的:

var arr = {}; 
var $div = $('<div />').html($('textarea').val()); 
$div.find('img').each(function (i) { 
     var src = $(this).attr('src'); 

     if (src.indexOf('http://') >= 0 && arr[src] == undefined) { 
      arr[src] = 'foobar'; 
     } else if (arr[src] !== undefined) { 
      alert('This url `' + src + '` already exists');  
     } else { 
      alert('This url `' + src + '` is wrong');  
     } 
}); 

演示:http://jsfiddle.net/LXgWU/3/

+0

@codefOrmer它只验证img标签......但我需要验证,如果两个img标签输入相同源名称应该给出一个警告 – user1051599 2012-03-29 11:37:57

+0

也可以完成。在添加到数组之前,您应该将图像url放入js数组中并检查它是否存在(显示错误消息)。 – codef0rmer 2012-03-29 11:58:20

+0

Plz发布一个示例以遵循... – user1051599 2012-03-29 12:03:20

0

假设您的var src_cnt工作完美。

var src_cnt = (editor_val.match(/img/g).length); 
if(src_cnt == 1) 
{ 
alert("Plz choose Unique Image"); 
return false; 
} 
+0

可以编辑我的代码片段我试过没有警报即将到来...... – user1051599 2012-03-29 11:29:36