通过添加文本框的值更新jQuery中的标签
我想知道是否有人可以请帮助我一个jQuery脚本。我正在使用MVC 2.通过添加文本框的值更新jQuery中的标签
我有2个文本框。当值输入到文本框中时,这些值的总和应显示在用户键入的标签控件中。因此,如果页面加载,则文本框为空,因此标签也必须为空(空白)。当用户键入一个像10那样的值时,应该在标签中显示10。如果用户输入5到另一个文本框中,则应该显示15。如果用户清除2个文本框,则标签应该再次变为空白。
我希望有人能帮助这里:)
感谢
$('#textbox1, #textbox2').keyup(function() {
$('#label').html('');
var val1 = $('#textbox1').val();
var val2 = $('#textbox2').val();
if(!isNaN(val1) && !isNaN(val2)) {
$('#label').html(parseInt(val1, 10) + parseInt(val2, 10));
}
});
UPDATE
为了适应您的评论,请参阅下面的变化。做了这个改变之后,我开始倾向于Reigel的答案,但也许修改0
的结果总是被表示为一个空字符串。
$('#textbox1, #textbox2').keyup(function() {
$('#label').html('');
var val1 = $('#textbox1').val();
var val2 = $('#textbox2').val();
if(!isNaN(val1) || !isNaN(val2)) {
$('#label').html((parseInt(val1, 10) || 0) + (parseInt(val2, 10) || 0));
}
});
$("#textBox1").keydown(function(event) {
updateLabel();
});
$("#textBox2").keydown(function(event) {
updateLabel();
});
function updateLabel()
{
var val = 0;
if(isNaN($("#textBox1").val()) && isNaN($("#textBox1").val()))
{
$("#myLabel").val("");
return;
}
if(!isNaN($("#textBox1").val()))
val += $("#textBox1").val();
if(!isNaN($("#textBox2").val()))
val += $("#textBox2").val();
$("#myLabel").val(val);
}
$(document).ready(function() {
$('#num1, #num2').keyup(function(){
var num1 = parseInt($('#num1').val(),10) || 0;
var num2 = parseInt($('#num2').val(),10) || 0;
$('label.sum').text((num1 + num2)|| '')
});
});
fair demo
这使得很多假设。任何可以是'parseInt':d的将是,而任何不能被视为'0'的。因此''a1'+'1a''会产生'1'。这也不能区分结果'0'是一个错误的结果。因此''1'+'-1''产生'''''。 – 2010-10-06 09:00:19
哦,原来我提到的第一个假设似乎是OP想要的:) – 2010-10-06 09:42:57
感谢。我是jQuery的新手。这段代码是否必须在$(document).ready(function(){})中? – 2010-10-06 08:40:43
@Brendan Vogt:它通常是附加所有事件处理程序的最佳位置(例如'keyup'),所以我会将它放在'$(document).ready()'函数体中 – 2010-10-06 08:53:06
@Brendan :是的,将它放入该函数意味着代码不会被执行,直到DOMReady事件被触发,这是您第一次保证有权访问页面中的所有DOM节点。将任何访问DOM节点的东西推迟到DOMReady总是最佳实践。 – 2010-10-06 08:56:56