javascript表单验证不会按预期编写html代码

时间:2014-03-09 16:24:44

标签: javascript forms

我正在尝试将javascript表单验证集成到我的宠物项目中,并且对此抱有绊脚石:

function validateForm() {

  if (this.firstname.value == "") {

    document.getElementById("testingline").innerHTML = '<div class="alert alert-danger alert-dismissable"><span>'+missing+'</span></div>';
    this.firstname.focus();

    return false;
  }

  return true;
}

如果省略了document.getElementById行,则单击时不提交表单,而提交表单的行。

我做错了什么?

通过以下方式调用该函数:

 <form name="helperform" role="form" method="get" action="thanks.php"
    onsubmit="return validateForm(this)">

并且应该添加该行:

<div class="col-md-6 col-md-offset-3" id="testingline" name="testline"></div>

感谢您的帮助!

丹尼尔

1 个答案:

答案 0 :(得分:3)

DOM元素没有名为html的函数。您可以使用属性 innerHTML设置其内容,如下所示:

document.missing_placeholder.innerHTML = '<div class="alert alert-danger alert-dismissable"><span>'+Du hast was vergessen+'</span></div>';

但另外请注意,您过早地结束了引号,因此Du hast was vergessen不在字符串中。所以要修复那个

document.missing_placeholder.innerHTML = '<div class="alert alert-danger alert-dismissable"><span>Du hast was vergessen</span></div>';

此外,您尚未展示如何定义上面称为document.missing_placeholder的元素,但document.missing_placeholder可能是错误的。如果您使用id对其进行定义,请使用document.getElementById("missing_placeholder")代替(window.missing_placeholder 可以工作)。


您经常使用的html函数来自附加库,通常是jQuery。但即使你使用jQuery,要使用它,你必须首先获得元素的jQuery包装:

$(/* document.missing_placeholder or whatever*/).html('<div class="alert alert-danger alert-dismissable"><span>Du hast was vergessen</span></div>');

但是,只有当你使用jQuery时才会这样。