我只是想用下面的代码和逻辑来解决这个问题,寻找一个纯JavaScript的解决方案.我一直无法获取textarea字段的值,该字段的名称包含作为其名称子字符串的礼物消息.你能帮我修一下吗?
HTML格式如下:
<span class="bold_option_element">
<textarea name="properties[Enter Gift Message Below. NO EMOJIS PLEASE. Remember to sign your name! ]" class="ta_570739_262324" maxlength="1000">
</textarea>
<textarea name="properties[Test Gift ]" class="ta_570739_262324" maxlength="1000">
</textarea>
</span>
JavaScript:
<script>
{%- comment -%}
This block of code checks if emojis are present in gift message, on keyup event
Logic:
1. Get value of textarea field for gift message.
2. Get the textarea "bold_option_element" fields whose name has "GiftMessage" after stripping all blanks.
3. Return false if emojis are present.
Refer: https://melvingeorge.me/blog/check-if-string-contain-emojis-javascript for emoji validation
{%- endcomment -%}
window.onkeyup = function(e) {
// Get gift message string.
giftMessage = "Hello ???? ????";
let textAreaElements = document.getElementsByClassName('bold_option_element');
console.log(textAreaElements);
const regexExp = /(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])/gi;
if (regexExp.test(giftMessage)) {
alert("No EMOJIs are allowed in the Gift Message. EMOJIs have been deleted in the Gift Messsage. Edit your Gift Message and 'Add to Cart'");
return false;
}
return true;
};
</script>
链接到jsfiddle:https://jsfiddle.net/pramodraam/vhqyj15m/6/