Javascript 我写的JQuery代码停止工作了,是否有任何错误I';你忽略了什么?
对于下面的代码,我希望具有.btn primary属性的submit按钮的内容仅在输入字段都不为null时才更改为“Success!” 在预设状态下,无论字段是否包含内容,按下按钮后,代码直接进入成功状态 我想这可能是因为字段可能已经有了一个不为null的值,所以我运行了以下代码:Javascript 我写的JQuery代码停止工作了,是否有任何错误I';你忽略了什么?,javascript,jquery,Javascript,Jquery,对于下面的代码,我希望具有.btn primary属性的submit按钮的内容仅在输入字段都不为null时才更改为“Success!” 在预设状态下,无论字段是否包含内容,按下按钮后,代码直接进入成功状态 我想这可能是因为字段可能已经有了一个不为null的值,所以我运行了以下代码:alert($('#Comment').attr(“value”)并在警报消息中返回未定义的。Undefined与js/jquery中的null相同,不是吗 我很早就得到了这段代码,它的输入方式几乎相同,只是做了一些修
alert($('#Comment').attr(“value”)代码>并在警报消息中返回未定义的
。Undefined与js/jquery中的null相同,不是吗
我很早就得到了这段代码,它的输入方式几乎相同,只是做了一些修改。我取消了更改,但仍然不起作用
任何帮助都将不胜感激。(如果有人知道这一点)是否存在相同代码在不同时间无法工作的情况,所有情况都是相同的
<script src="~/Scripts/jquery-2.1.1.min.js"></script>
$(document).ready(function () {
var Fname = $('#FirstName').attr("value");
var Lname = $('#LastName').attr("value");
var Email = $('#Email').attr("value");
var Comment = $('#Comment').attr("value");
$(".btn-primary").click(function () //This block should say, if all fields are not null changed the content of button to "Success!" and change the content of <h1> to "THANKS, I'VE GOT YOUR MESSAGE."
{
if (Fname != null && Lname != null && Email != null && Comment != null)
{
$("button").html("Success!");
$("h1").html("THANKS, I'VE GOT YOUR MESSAGE");
}
})
});
</script>
$(文档).ready(函数(){
var Fname=$('#FirstName').attr(“value”);
var Lname=$('#LastName').attr(“value”);
var Email=$('#Email').attr(“值”);
var Comment=$('#Comment').attr(“value”);
$(“.btn primary”)。单击(函数()//此块应显示,如果所有字段均不为null,则将按钮的内容更改为“成功!”,并将的内容更改为“谢谢,我收到了您的消息。”
{
如果(Fname!=null&&Lname!=null&&Email!=null&&Comment!=null)
{
$(“按钮”).html(“成功!”;
$(“h1”).html(“谢谢,我收到你的消息”);
}
})
});
这是同一页上的html
<form class="form-horizontal" role="form" action="/Home/Contact" method="post">
<div class="form-group">
<div class="col-lg-10">
<input class="form-control" data-val="true" data-val-required="Please enter your first name" id="FirstName" type="text" placeholder="First Name" name="FirstName"/>
</div>
</div>
<div class="form-group">
<div class="col-lg-10">
<input class="form-control" required data-val="true" data-val-required="Please enter your last name" id="LastName" type="text" placeholder="Last Name" name="LastName"/>
<span class="field-validation-valid text-danger" data-valmsg-for="LastName" data-valmsg-replace="true" data-></span>
</div>
</div>
<div class="form-group">
<div class="col-md-10">
<input class="form-control" required data-val="true" data-val-required="Please enter your email" id="Email" name="Email" type="email" placeholder="Email@Address.com"/>
<span class="field-validation-valid text-danger" data-valmsg-for="Email" data-valmsg-replace="true"></span>
</div>
</div>
<div class="form-group">
<div class="col-lg-10">
<textarea class="form-control" required data-val="true" data-val-required="Please enter a brief detailed message" id="Comment" name="Comment" placeholder="A Short but detailed message"></textarea>
<span class="field-validation-valid text-danger" data-valmsg-for="Comment" data-valmsg-replace="true"></span>
</div>
</div>
<div class="form-group">
<div class="col-lg-10">
<button type="submit" class="btn btn-primary btn-sm active" value="submit">Submit</button>
<input type="reset" class="btn btn-default btn-sm active" value="reset">
</div>
</div>
</form>
提交
加载文档时,您正在存储Fname、Lname…..的值。。。。。等等。问题是在条件测试中使用这些值,但这些值不会改变,因为它们只是第一次加载页面时的原始值。一个快速修复方法是将这些内容放入单击中,以便每次单击时都可以重新评估它们
此外,在检查时,您只检查null,但无论如何,它们都不会等于null。最好是完全验证它们,或者只测试泛型truthy,它排除了伪值,例如null、未定义、空字符串
$(文档).ready(函数(){
$(“.btn主”)。单击(函数(e)
{
var Fname=$('#FirstName').val();
var Lname=$('#LastName').val();
var Email=$('#Email').val();
var Comment=$('#Comment').val();
//添加只是为了停止表单提交
e、 预防默认值();
//非常快速的测试,但对于每个领域的真正验证,这可能会更加详细
如果(Fname&&Lname&&Email&&Comment){
$(“按钮”).html(“成功!”;
$(“h1”).html(“谢谢,我收到你的消息”);
}
})
});代码>
提交
如果以前它有效,而现在不行,你必须问问自己:到底发生了什么变化?未定义和null不是一回事。你能为这个问题提供一个更有意义的主题吗?注意:你可以用val()代替attr(“value”)。谢谢大家的意见@Kolban,我确实试图尽可能详细地写一个主题,但有时在从编码专家那里寻求帮助时,抓住根本原因的稻草时,很难表达这一点。再次感谢大家!谢谢你,我感谢你的详细答复。它工作得很好。再次感谢!