播放框架:无法使用javascript读取textfield的值

播放框架:无法使用javascript读取textfield的值,javascript,playframework,textfield,template-engine,Javascript,Playframework,Textfield,Template Engine,我无法找到读取电子邮件字段当前值的方法。每次我阅读它时,例如,通过一个keyup事件,都不会检索到任何内容。这个问题只会影响这个领域。我可以毫无问题地读取其他文本字段的值 createFormOnly.scala.html @(signupForm: Form[models.Register], loginForm: Form[Application.Login]) @scripts = { <script src="@routes.Assets.at("java

我无法找到读取电子邮件字段当前值的方法。每次我阅读它时,例如,通过一个keyup事件,都不会检索到任何内容。这个问题只会影响这个领域。我可以毫无问题地读取其他文本字段的值

createFormOnly.scala.html

@(signupForm: Form[models.Register], loginForm: Form[Application.Login])

    @scripts = {
        <script src="@routes.Assets.at("javascripts/password.js")" type="text/javascript"></script>
    }

@main(null, scripts) {
        @views.html.guestNavBar(loginForm)
        @createFormOnly(signupForm, loginForm)
}
这是我的视图,包含用于打印文本字段值的表单和jquery代码。注意#fullname字段的验证没有任何问题

@(signupForm: Form[models.Register], loginForm: Form[Application.Login])

@import helper._
    @implicitFieldConstructor = @{
        FieldConstructor(twitterBootstrapInput.render)
    }

<div class="well">
<h3>@Messages("signup.new")</h3>

@if(flash.get("error")!=null) {
    <p class="error">
        <span class="label label-danger">@Messages(flash.get("error"))</span>
    </p>
}

@form(controllers.account.routes.Signup.save(), 'id -> "signupForm") {

<script type="text/javascript">
$( document ).ready(
        function() 
        {
            // Setup form validation on the signupForm element
            $("#signupForm").validate({

                // Specify the validation rules
                rules: {
                    email: {
                        required: true
                    },
                    fullname: {
                        required: true,
                        namecheck: true
                    }   
                },

                // Specify the validation error messages
                messages: {
                    email: "<p class='error'><span class='label label-danger'>Email missing.</span></p>",
                    fullname: "<p class='error'><span class='label label-danger'>Name is already used.</span></p>"
                },

                // handler which handles the submit
                submitHandler: function(form) {
                    form.submit();
                }
            });

            jQuery.validator.addMethod("namecheck", function(value) {
                var dataString = {
                    "action" : "namecheck",
                    "display_name" : value
                };
                var check_result = false;
                jQuery.ajax({
                    type: "GET",
                    url: "http://localhost:9000/checkName/"+$( '#fullname' ).val(),
                    async: false, 
                    data: dataString,
                    dataType: "json",
                    success: function(data){
                        check_result = (data.toString() == "true");
                    }
                });
                console.log(check_result);
                return check_result;
            }, "error message");

            $('body').on("keyup",'#email', function(){
                console.log('keyed email');
                console.log($('body #email').val());
                console.log($('#email').val());
                console.log($('#email').attr('value'));
            });

            $('body').on("keyup",'#fullname', function(){
                console.log('keyed fullname');
                console.log($('body #fullname').val());
                console.log($('#fullname').val());
                console.log($('#fullname').attr('value'));
            });
        }

    );
</script>  
    <ul class="list-group">
        <li class="list-group-item">
            @inputText(
                signupForm("email"),
                'placeholder -> Messages("accout.register.create.email"),
                '_label -> Messages("email"),
                'class -> "form-control",
                '_showConstraints -> false,
                'id -> "email"
            )
        </li>
        <li class="list-group-item">
            @inputText(
                signupForm("fullname"),
                'placeholder -> Messages("accout.register.create.fullname"),
                '_label -> Messages("fullname"),
                'class -> "form-control",
                '_showConstraints -> false,
                'id -> "fullname"
            )
        </li>
        <li class="list-group-item">
            @inputPassword(
                signupForm("inputPassword"),
                '_label -> Messages("password"),
                'placeholder -> Messages("accout.register.create.password"),
                'class -> "form-control",
                '_showConstraints -> false
            )
        </li>
        <li  class="list-group-item">
            <div class="form-actions">
                <input type="submit" class="btn btn-primary" value="@Messages("signup.signup")">
            </div>
        </li>
    </ul>
}
</div>

jQuery文档中可能有关于“val()”方法的线索:

“获取匹配元素集中第一个元素的当前值”

因此,你有:

console.log($('#email').val());
事实上,它可能是除您的输入之外的另一个元素,它正在获得其值输出


检查将输出到浏览器的HTML,以查找ID为“email”的其他元素“电子邮件”是一个非常通用的名称,页面中可能有其他使用此ID的内容。

谢谢您的提示!创建我的页面时,会包含@views.html.guestNavBar(loginForm),其中包括一个loginForm,该loginForm还包括一个电子邮件输入字段。
console.log($('#email').val());