JavaScript验证-document.getElementById在引导模式下不工作

JavaScript验证-document.getElementById在引导模式下不工作,javascript,php,html,twitter-bootstrap,Javascript,Php,Html,Twitter Bootstrap,我正在使用onSubmit()函数验证表单条目 如果表单位于独立的php文件或html文件中,则表单和验证函数可以正常工作 但是,当表单嵌入到引导模式中时,JS验证函数会抛出一条错误消息[object HTMLInputElement] 我已尝试将document.getElementById('uemail')更改为document.getElementById('uemail')。值,如另一个答案中所建议, 但显然没有向函数传递任何值 如果我删除onSubmit()属性,那么这些值将正确地传

我正在使用
onSubmit()
函数验证表单条目

如果表单位于独立的php文件或html文件中,则表单和验证函数可以正常工作

但是,当表单嵌入到引导模式中时,JS验证函数会抛出一条错误消息<代码>[object HTMLInputElement]

我已尝试将
document.getElementById('uemail')
更改为
document.getElementById('uemail')。值
,如另一个答案中所建议, 但显然没有向函数传递任何值

如果我删除
onSubmit()
属性,那么这些值将正确地传递给服务器上的操作脚本

这一定是常见的用法。我做错了什么

这是我的代码的一个缩写部分:

<script>
function formCheck() {
    var valid = true;
    //alert('in function');
    var email = document.getElementById('uemail');
    alert('email:' + email);
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    if (!filter.test(email)) {
        alert('Please provide a valid email address');
        email.focus;
        valid = false;
    }
    return valid;
}
</script>


<form id="regform" action="action.php" method="post" onSubmit="return formCheck()">
    Email: <input type="text" name="uemail" id="uemail" size="50" value="" required><span id ="ast">*</span><br>
    <input type="submit" name="Submit" value="Register" />
</form>

函数formCheck(){
var valid=true;
//警报(“功能中”);
var email=document.getElementById('uemail');
警报(“电子邮件:”+电子邮件);
变量过滤器=/^([a-zA-Z0-9\.\-])+\@([a-zA-Z0-9\-])+\)+([a-zA-Z0-9]{2,4})+$/;
如果(!filter.test(电子邮件)){
警报(“请提供有效的电子邮件地址”);
email.focus;
有效=错误;
}
返回有效;
}
电子邮件:*

编辑:看起来您无法执行
文档。getElementById
,您可以执行以下操作:

function formCheck(formEl) {
    //...
    var email = formEl.getElementsByTagName("input")[0].value;
    // this will get the first input-element in your form


错误:您正在测试的变量
email
是HTMLElement,而不是字符串:

解决方案:
电子邮件设置为HTMLInputElement的值:

var email = document.getElementById('uemail').value;
还有
email.focus
没有做任何事情,请使用
email.focus()

演示:

函数formCheck(){
var valid=true;
//警报(“功能中”);
var email=document.getElementById('uemail').value;
警报(“电子邮件:”+电子邮件);
变量过滤器=/^([a-zA-Z0-9\.\-])+\@([a-zA-Z0-9\-])+\)+([a-zA-Z0-9]{2,4})+$/;
如果(!filter.test(电子邮件)){
警报(“请提供有效的电子邮件地址”);
email.focus;
有效=错误;
}
返回有效;
}

电邮:
*


编辑:看起来您无法执行
文档。getElementById
,您可以执行以下操作:

function formCheck(formEl) {
    //...
    var email = formEl.getElementsByTagName("input")[0].value;
    // this will get the first input-element in your form


错误:您正在测试的变量
email
是HTMLElement,而不是字符串:

解决方案:
电子邮件设置为HTMLInputElement的值:

var email = document.getElementById('uemail').value;
还有
email.focus
没有做任何事情,请使用
email.focus()

演示:

函数formCheck(){
var valid=true;
//警报(“功能中”);
var email=document.getElementById('uemail').value;
警报(“电子邮件:”+电子邮件);
变量过滤器=/^([a-zA-Z0-9\.\-])+\@([a-zA-Z0-9\-])+\)+([a-zA-Z0-9]{2,4})+$/;
如果(!filter.test(电子邮件)){
警报(“请提供有效的电子邮件地址”);
email.focus;
有效=错误;
}
返回有效;
}

电邮:
*


如果我尝试使用getElementById()提取元素的值。那里似乎没有值。带有.value的代码工作得很好,直到它从模式中运行为止。那是我的问题,恐怕不是。代码在模式中仍然无法工作。那么我已经尽力了,对不起。但也许我会放弃它,放弃部分正确的解决方案和我在Hanks getElementsByTagName(“输入”)[0]中付出的努力。值解决了我的问题。很抱歉延迟回复,但我现在已将其应用于完整表单,并获得成功。再次感谢-这是对我第一次在线请求帮助的良好响应。如果我尝试使用getElementById()提取元素的值,那么那里似乎没有值。带有.value的代码工作得非常好,直到它在模式中运行为止。那是我的问题,恐怕不是。代码在模式中仍然无法工作。那么我已经尽力了,对不起。但也许我会放弃它,放弃部分正确的解决方案和我在Hanks getElementsByTagName(“输入”)[0]中付出的努力。值解决了我的问题。很抱歉延迟回复,但我现在已将其应用于完整表单,并获得成功。再次感谢-这是对我第一次在线求助的巨大回应。