I have form and I want to check tiny mce field and prevent users from using some specific words. I get TinyMce field value but I can’t check if tiny_content value contains badwords
My html with TinyMce field
<div id="mceu_24" class="mce-tinymce mce-container mce-panel">
<div id="mceu_31" class="mce-edit-area mce-container mce-panel mce-stack-layout-item">
<iframe id="post_content_ifr">
<html lang="en-US">
<head></head>
<body id="tinymce" class="mce-content-body post_content post-type-page>
<p>my test content abc bca dssdf </p>
</body>
</html>
</ifame>
</div>
</div>
My jQuery
jQuery(function() {
$(".directorypress-submit-form-section-content").on("click",function() {
var badwords = ["abc", "bca", "hai hello"];
var editor='content_textarea';
var tiny_content =tinyMCE.activeEditor.getContent({format: "text"});
alert(tiny_content);
if($.inArray(tiny_content, badwords) !==-1)
{
alert("Your Message Contains Bad Words, Please Remove Them Before Proceeding");
return false;
}
});
});
Advertisement
Answer
I use .some method. The some(..) method checks each element of the array against a test function and returns true if any element of the array passes the test function, otherwise, it returns false
jQuery(function() {
$(".directorypress-submit-form-section-content").on("click",function() {
var badwords = ["abc", "bca", "hai hello"];
var editor='content_textarea';
var tiny_content =tinyMCE.activeEditor.getContent({format: "text"});
alert(tiny_content);
let isFounded = badwords.some( ai => tiny_content.includes(ai) );
if(isFounded == true)
{
alert("Your Message Contains Bad Words, Please Remove Them Before Proceeding");
$(".submit-listing-button").removeClass("validate-button-class");
return false;
}
else{
$(".submit-listing-button").addClass("validate-button-class");
}
});
});