我必须从用户那里收到一条不应包含任何特殊字符的消息。我为此分配了一个id。
@Html.TextAreaFor(model => model.Message, new { id= "msg", htmlAttributes = new { @class = "form-control" } })
单击“提交”按钮,将发送消息。我在onclick事件的函数中使用前面提到的id“msg”,如图所示。
<input type="submit" value="Contact Us" class="btn btn-default" id="submit" onclick="return removeSpecialChar(msg)"/>
在同一个cshtml文件的开头,我还提到了函数removeSpecialChar()
:
<SCRIPT type=text/javascript>
function removeSpecialChar(msg) {
msg = msg.replace(/[^\w\s]/gi, '');
return msg;
}
</SCRIPT>
但是,消息中不会替换特殊字符。请帮助我理解这种方法的问题以及如何解决这个问题?另外,建议是否有必要使用名称空间进行正则表达式?
你应该编辑textarea的值 - 不确定你传入onclick的是什么msg但是尝试这个(也从点击中删除了返回):
<SCRIPT type=text/javascript>
function removeSpecialChar() {
var msg = document.getElementById('msg');
msg.value = msg.value.replace(/[^\w\s]/gi, '');
}
</SCRIPT>
<textarea id="msg"></textarea>
<input type="submit" value="Contact Us" class="btn btn-default" id="submit" onclick="removeSpecialChar()"/>
或者您可以通过将onkeyup绑定到textarea来验证用户何时键入:
<SCRIPT type=text/javascript>
function removeSpecialChar(input) {
input.value = input.value.replace(/[^\w\s]/gi, '');
}
</SCRIPT>
<textarea id="msg" onkeyup="removeSpecialChar(this);"></textarea>