当用户按下提交时,我无法让它调用下面的JS,我缺少什么
<script type="text/javascript">
function required(){
if (document.getElementById("Username").value.length == 0)
{
alert("message");
return false;
}
return true;
}
</script>
用户输入用户名的代码
<h:form> <!--onsubmit="return username_validation();">-->
<h:outputLabel for="username">Please enter your username: </h:outputLabel>
<h:inputText id="Username" label="Username" value="#{user.id}"
size="20" required="true" requiredMessage="Please enter a username" >
<f:ajax event="blur" render="usernameMessage" />
</h:inputText><br></br><br></br>
<h:message id="usernameMessage" for="username" />
To print a piece of text, please press the submit button below to upload the text:<br/><br/>
<h:commandButton type="Submit" value="Submit" onclick="return username_validation()" action="upload/uploadText" styleClass="submit"/>
</h:form>
感谢你们的帮助,我现在有以下内容:但是我永远无法收到错误信息,请h:inputText
我可以这样做吗?
<h:form> <!--onsubmit="return username_validation();">-->
<h:outputLabel for="username">Please enter your username: </h:outputLabel>
<h:inputText id="Username" label="Username" value="#{user.id}"
size="20" required="true" requiredMessage="Please enter a username" >
</h:inputText><br></br><br></br>
To print a piece of text, please press the submit button below to upload the text:<br/><br/>
<h:commandButton type="Submit" value="Submit" onclick="return username_validation()" action="upload/uploadText" styleClass="submit"/>
</h:form>
这也是我的userBean,我添加了@NotNull但是这个目前还没有用,我错过了什么吗?
package com.corejsf;
import java.io.Serializable;
import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
import javax.validation.constraints.NotNull;
@Named("user")
@SessionScoped
public class UserBean implements Serializable {
@NotNull(message = "Please enter a username")
private String id;
public String getId() {
return id;
}
public void setId(String newValue) {
id = newValue;
}
private String fileText;
public String getFileText() {
return fileText;
}
public void setFileText(String fileText) {
this.fileText = fileText;
}
}
答案 0 :(得分:3)
查看生成的HTML源代码。在浏览器中右键单击页面并执行查看源。 HTML源代码中根本没有ID Username
的元素。相应地修复。
<h:form id="form" ...>
<h:inputText id="username" ... />
...
</h:form>
和
var usernameElement = document.getElementById("form:username");
无关,您将完全通过JavaScript执行验证。这是不可靠的。只需使用required="true"
。
<h:form>
<h:inputText id="username" ... required="true">
<f:ajax event="blur" render="usernameMessage" />
</h:inputText>
<h:message id="usernameMessage" for="username" />
...
</h:form>