2014-06-06 55 views
2

我正在使用jQuery TE插件(http://jqueryte.com/)。它似乎沒有與jQuery Validation插件一起使用。jQuery驗證不能使用jQuery文本編輯器插件(TextArea)

常規textarea工作正常,但如果我想將其轉換爲jqte所見即所得,我會失去該功能。

在這個例子中,名稱和生物字段被驗證,但不是簡歷字段。

jsFiddle

HTML:

<form id="frmExample"> 
<div><b>Name:</b></div> 
<input name="txtName" id="txtName" class="required" /> 
<br /> 
<div><b>Bio:</b></div> 
<textarea cols="40" rows="6" name="txtBio" id="txtBio" class="required"></textarea> 
<br /> 
<div><b>Resume</b></div> 
<textarea name="txtResume" class="required" id="txtResume"></textarea> 
<br /> 
<br /> 
<input type="submit" value="Save" />  

JS:

$("#txtResume").jqte(); 
$("#frmExample").validate(); 

回答

1

我已經在博客中詳細描述了這樣一個例子:http://chadkuehn.com/jquery-te-validation/

將jqte放在TEXTAREA標籤上時,它隱藏了原始元素。因此,在驗證插件中,您必須調整突出顯示和不亮選項時可見的標記。您還必須對錯誤標籤的位置進行一些調整。

errorPlacement: function (error, element) { 
     var el = $(element).closest(".jqte"); 
     if (el.length == 1) { 
      error.insertAfter(el); 
     } else { 
      error.insertAfter(element); 
     } 
    }, 
    highlight: function (element, errorClass, validClass) { 
     $(element).addClass(errorClass).removeClass(validClass); 

     var el = $(element).closest(".jqte"); 
     if (el.length == 1) { 
      el.addClass(errorClass); 
     } 
    }, 
    unhighlight: function (element, errorClass, validClass) { 
     $(element).removeClass(errorClass).addClass(validClass); 
     var el = $(element).closest(".jqte"); 
     if (el.length == 1) { 
      el.removeClass(errorClass); 
     } 
    } 

在這裏查看DEMO

0

使用ASP.NET MVC我會推薦這... 要與jqte自動擁有jQuery驗證,在啓動時執行:

$('.jqte_editor').change(function() { 
    if ($(this).parent().siblings('.textarea-editor').hasClass('.input-validation-error')) 
     $(this).parent().addClass('input-validation-error'); 
    else 
     $(this).parent().removeClass('input-validation-error'); 
}); 

$('form').bind('submit', function() { 
    $('.textarea-editor.input-validation-error').parent().parent().addClass('input-validation-error'); 
    $('.textarea-editor:not(.input-validation-error)').parent().parent().removeClass('input-validation-error'); 
}); 

並記得把「textarea的編輯器」類textarea的