你好,所以我试图修剪白色空格,当用户输入空格时,他得到一个错误,说明他应该输入有效的字符,但是如果他使用:' test '
在数据库中输入相同的值吗?需要在javascript中再次修剪它?
function validateForm()
{
if(trim(document.insert.aname.value) ==="")
{
alert("Animal should have a name");
document.insert.aname.focus();
return false;
}
}
function trim(value) {
return value.replace(/^\s+|\s+$/g,"");
}
你能帮帮忙吗?
输入页面是.JSP
答案 0 :(得分:9)
你实际上并没有修改输入。你想要这个:
//store the input in a variable
var nameInput = document.insert.aname
function validateForm() {
//Get the trimmed name
var animalName = trim(nameInput.value)
if(animalName) {
//Update the form with the trimmed value, just before the form is sent
nameInput.value = animalName
}
else {
//Trimmed value is empty
alert("Animal should have a name");
nameInput.focus();
return false;
}
}
function trim(value) {
return value.replace(/^\s+|\s+$/g,"");
}
答案 1 :(得分:5)
首先,我将提供一些未经请求的建议:)即使您的javascript代码修剪了用户的输入,也无法保证此代码始终会运行。例如,用户可能会在其浏览器上禁用javascript或仅使用库(其中大量存在)以编程方式提交表单数据,而无需使用任何浏览器。
因此,您应该始终修改服务器端的输入(在您的情况下,在JSP中)。在生产系统中,您需要做的不仅仅是修剪,还需要检查最大尺寸和数据类型(因此,如果您的JSP需要数字输入,则需要检查)
这意味着您基本上必须进行两次数据验证。您在浏览器中执行的数据验证可以帮助用户,并且在输入无效内容时应显示用户友好的消息。重要的概念是浏览器验证不提供安全性,因为它没有提供任何安全性。安全性来自服务器端验证。服务器端验证提供用户友好的反馈并不是那么重要;它确实很好,但它不是最重要的。
现在,问你的问题。当你打电话给
时trim(document.insert.aname.value)
这不会改变表单中的值。它只是返回一个剪裁版本的表单数据。因此,当您提交表单时,“test”末尾的空格会与表单数据一起出现。
javascript可以操作表单中的内容,但这种做法并不常见,不可取。所以,总结一下:
希望这会有所帮助。 菲尔
答案 2 :(得分:1)
嘿,您可以使用jQuery.trim
功能:
var str = " a ";
str = $.trim(str)