从JSP到Javascript检索值

从JSP到Javascript检索值,java,netbeans,Java,Netbeans,以下是我的JSP页面上的javascript: <SCRIPT language="JavaScript"> function checkPass(){ var pass1=request.getParameter('password'); var pass2=request.getParameter('password2'); if (pass1==pass2){ window.alert("YES"); } else{

以下是我的JSP页面上的javascript:

<SCRIPT language="JavaScript">
function checkPass(){

var pass1=request.getParameter('password');
var pass2=request.getParameter('password2');

    if (pass1==pass2){
        window.alert("YES");
    }
    else{
        window.alert("NO");
    }
    }
</SCRIPT>

函数checkPass(){
var pass1=request.getParameter('password');
var pass2=request.getParameter('password2');
if(pass1==pass2){
窗口提示(“是”);
}
否则{
窗口。警报(“否”);
}
}
以下是我的表单输入文本框:

                    <h:outputLabel value="Password:" for="password" />
 <h:inputSecret id="password" value="#{StaffController.staff.password}" 
            size="20" required="true"
            label="Password" >
            <f:validateLength minimum="8" />
        </h:inputSecret>

        <h:message for="password" style="color:red" />

                    <h:outputLabel value="Password:" for="password2" />
 <h:inputSecret id="password2" 
            size="20" required="true"
            label="Password" >
            <f:validateLength minimum="8" />
        </h:inputSecret>
 <h:message for="password2" style="color:red" />

下面是与onmousedown链接的我的commandbutton,用于在单击时调用脚本:

<h:commandButton action="#{StaffController.saveUser()}" onmousedown="checkPass();" value="Submit"/>


我似乎无法从我的用户输入表单中检索值。

首先,您需要在h:form中将值设置为false,并将其设置为“prependId”属性,以便在javascript上按id获取文本框。不建议删除prependId。但它使您更容易使用javascript。在另一种方式中,您可以将字段名或css名用于其他类型的选择(如使用Jquery$('.cssname')或$('#cssid'))

现在您需要更改javascript。javascript是在客户端执行的。您无法从请求中获取数据,因为在执行javascript时请求没有完成

您需要获取inputSecret对象,该对象在html中是一个输入项,使用如下方式:

var pass1 = document.getById('password').value;
var pass2 = document.getById('password2').value;

首先,您需要将h:form中的值false设置为“prependId”属性,以便在javascript上按id获取文本框。不建议删除prependId。但这会使您更容易使用javascript。换句话说,您可以使用字段名或css名,以及其他类型的选择(如使用Jquery)$(“.cssname”)或$(“#cssid”)

现在您需要更改javascript。javascript是在客户端执行的。您无法从请求中获取数据,因为在执行javascript时请求没有完成

您需要获取inputSecret对象,该对象在html中是一个输入项,使用如下方式:

var pass1 = document.getById('password').value;
var pass2 = document.getById('password2').value;
  • JSF更改组件的id-在浏览器中查看页面的源代码。它应该类似于表单id+组件id的组合

  • Submit命令在提交之前调用onmousedown事件,所以在checkPass中并没有请求对象

  • 最好编写一个用于检查密码的自定义验证器

  • JSF更改组件的id-在浏览器中查看页面的源代码。它应该类似于表单id+组件id的组合

  • Submit命令在提交之前调用onmousedown事件,所以在checkPass中并没有请求对象

  • 最好编写一个用于检查密码的自定义验证器


  • 因此,在我更改这两行之后,它很可能会起作用,除此之外什么都没有?将h:form值false更改为“prependld”是什么意思?如果不向标记(需要包含整个表单)添加prependId=“false”在jsf上,生成的HTML代码中元素的id是使用一个自动过程定义的,该过程会生成不可预测的id,而不是添加到控件中的id。您可以在导航器中查看最后一页的HTML源代码。因此,h:form标记应该一直覆盖我的脚本,直到我的commandbutton?我有从我的脚本开始添加,一直添加到我的commandbutton之后。但是表单仍然运行,没有执行ComparisonDownVote。不要添加
    prependId=“false”
    ,错误的选择:,请阅读并学习如何获得正确的id:因此,在我更改这两行之后,它很可能会工作,而不是其他任何内容?将h:form值false更改为“prependld”是什么意思?如果不向标记(需要包含整个表单)添加prependId=“false”在jsf上,生成的HTML代码中元素的id是使用一个自动过程定义的,该过程会生成不可预测的id,而不是添加到控件中的id。您可以在导航器中查看最后一页的HTML源代码。因此,h:form标记应该一直覆盖我的脚本,直到我的commandbutton?我有从我的脚本开始添加,一直添加到我的commandbutton之后。但是表单仍然运行,没有进行比较。不要添加
    prependId=“false”
    ,错误选择:,只需阅读并学习如何获取正确的id: