我想比较jQuery中的两个字符串,如果它们相同,如果网页中没有错误消息,则显示提交按钮:
(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>
我收到此错误:
解析错误。缺少 ; 在语句之前
在这一行中
$('#password1').checkPassword(){
我不知道我在"onchange"上做对了,有什么想法吗?谢谢!
这不是有效的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")">
onchange="checkPassword()"
表示在输入字段上发生 onchange 事件时调用函数 checkpassword(不带参数)。
你的JavaScript中没有定义checkPassword函数,你要么忘了在这里发布它,要么你打算调用ns.init。