我想比较jQuery中的两个String,如果它们是相同的,我会显示提交按钮,如果不是网页中的错误消息:
(function(){
var tw = window.tw,
ns = tw.resetpassword = {},
lib = tw.lib,
_ = tw.util;
ns.init = function(){
$('#password1').checkPassword(){
var password1 = $('#password1').val()
console.log(password1);
var password2 = $('#password2').val()
console.log(password2);
if(password1==password2){
$("#reset-password").removeAttr("style");
console.log('yes!');
}else{
$("#alert-error").removeAttr("style");
}
}
$('#password2').checkPassword(){
var password1 = $('#password1').val()
console.log(password1);
var password2 = $('#password2').val()
console.log(password2);
if(password1==password2){
$("#reset-password").removeAttr("style");
}else{
$("#alert-error").removeAttr("style");
}
}
)};
})();
HMTL:
<form action="@securesocial.core.providers.utils.RoutesHelper.handleResetPassword(token).absoluteURL(IdentityProvider.sslEnabled)" autocomplete= "off" method="POST">
<input class="form-text" id="password1" name="password.password1" type="password" maxlength="128" size="60" onchange="checkPassword()" placeholder="@Messages("securesocial.passwordChange.newPassword1")">
<input class="form-text" id="password2" name="password.password2" type="password" maxlength="128" size="60" onchange="checkPassword()" placeholder="@Messages("securesocial.passwordChange.newPassword2")">
<input class="form-submit email" id="reset-password" type="submit" name="op" value="@Messages("securesocial.password.reset")" style="display:none">
</form>
</div>
<div class="alert alert-error" id="alert-error" font color="red" style="display:none">
<span style="color: red">@Messages("securesocial.password.error")</span>
</div>
我收到此错误:
解析错误。失踪 ;在陈述之前
在这一行
$( '#密码1')。checkPassword()所在{
我不知道我是否正确地使用“onchange”,任何想法?谢谢!
答案 0 :(得分:2)
这只是无效的javascipt语法!
$('#password1').checkPassword(){
...
}
它看起来像是调用方法(.checkPassword()
)和定义新函数的组合。
查看你的html,看起来你试图在任一密码字段中更改文本时调用此函数checkPassword
:
<input class="form-text" id="password1" ... onchange="checkPassword()" ...>
使用jQuery时,应避免指定内联函数,而是使用jQuery .on
方法
ns.init = function(){
$('#password1, #password2').on('change',function(){
var password1 = $('#password1').val()
console.log(password1);
var password2 = $('#password2').val()
console.log(password2);
if(password1==password2){
$("#reset-password").removeAttr("style");
}else{
$("#alert-error").removeAttr("style");
}
});
}
(注意:无需重复两次代码,上面的代码会对password1
和password2
添加相同的行为。)
您现在也可以从html中删除该属性:
<input class="form-text" id="password1" name="password.password1"
type="password" maxlength="128" size="60"
placeholder="@Messages("securesocial.passwordChange.newPassword1")">
答案 1 :(得分:1)
onchange="checkPassword()"
表示在输入字段上发生 onchange 事件时,无需参数调用函数 checkPassword 。
您的JavaScript中没有定义 checkPassword 功能,您要么忘记在此发布,要么打算调用 ns.init 。