1

ユーザーが送信を押したときに、以下の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;
    }
}
4

1 に答える 1

3

生成された HTML ソースを調べます。ブラウザでページを右クリックし、View Sourceを実行します。UsernameHTML ソースにはID を持つ要素がまったく存在しません。それに応じて修正します。

<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>

以下も参照してください。

于 2012-12-24T23:10:43.610 に答える