आप इसे setCustomValidity()
के साथ स्वयं लागू कर सकते हैं। इस तरह, this.checkValidity()
आपके तत्व पर लागू होने वाले नियमों का उत्तर देगा। मुझे नहीं लगता कि this.validity.patternMismatch
मैन्युअल रूप से सेट हो सकता है, लेकिन यदि आवश्यक हो तो आप अपनी संपत्ति का उपयोग कर सकते हैं।
http://jsfiddle.net/yanndinendal/jbtRU/22/
$('#test').keyup(validateTextarea);
function validateTextarea() {
var errorMsg = "Please match the format requested.";
var textarea = this;
var pattern = new RegExp('^' + $(textarea).attr('pattern') + '$');
// check each line of text
$.each($(this).val().split("\n"), function() {
// check if the line matches the pattern
var hasError = !this.match(pattern);
if (typeof textarea.setCustomValidity === 'function') {
textarea.setCustomValidity(hasError ? errorMsg : '');
} else {
// Not supported by the browser, fallback to manual error display...
$(textarea).toggleClass('error', !!hasError);
$(textarea).toggleClass('ok', !hasError);
if (hasError) {
$(textarea).attr('title', errorMsg);
} else {
$(textarea).removeAttr('title');
}
}
return !hasError;
});
}
स्रोत
2014-01-23 14:59:00
लगता है [ '' textarea' pattern' विशेषता नहीं है] (https: // developer.mozilla.org/en-US/docs/HTML/HTML_Elements/textarea?redirectlocale=en-US&redirectslug=HTML%2FElement%2Ftextarea), इसलिए संभावना है कि ब्राउज़र इसे अनदेखा कर देंगे। – Passerby