javascript - 为什么我不能使用 MooTools 设置我的输入字段?

标签 javascript forms events input mootools

我有一个文档,当用户在一个输入框中输入内容时,我需要在第二个输入框中显示响应。我可以获得用户给定的值,我可以处理它,但是当我尝试用结果设置第二个输入框时,我得到错误 $.field is null。这是代码:

$('places').addEvent('keyup', function(){
    var places = $('places').value;
    alert("PLACE: "+places);
    var price = values[places];
    var nights = $('nights').value.toInt();
    alert("NIGHTS: "+nights);
    var total = price * nights;
    alert("TOTAL: "+total);
    $('pricepernight').set('text', total);
    $('pricetotal').set('text', total - ((total / 100) * 21));
});

所以我得到了位值。我从关联数组中提取该地点的价格。然后我将该价格乘以用户输入的夜数,这就是我的总金额。这是我无法设置的数量。请注意,警报显示正确的金额。

html 看起来像这样

<div class='block'>
    <input type="text" id="places" />
</div>

<div class='block'>
    <label for="nachten">Aantal nachten</label>
    <input type="text" id="nights" />
</div>

<div class='block long'>
    <span class='label'>Prijs per slaapplaats per nacht</span>
    <input type="text" class='resultfield' id='pricepernight' />
</div>
<div class='block last'>
    <span class='label'>Totaalprijs excl. btw</span>
<input type="text" class='resultfield' id='pricetotal'/>
</div>

Firebug 响应:

String contains an invalid character
[Break On This Error]   

...x:\'4W\',3X:18.1l,al:18.1l,1Q:18.1l,as:18.1l,8S:18.1l,1F:O,3E:{x:\'1u\',y:\'1o\'...

有任何想法/建议吗?先感谢您!

最佳答案

没错。您似乎混合使用了 mootools 和 jquery 代码。

$('nights').addEvent('keyup', function(){
    var places = $('places').value;
    var price = values[places];
    var nights = $('nights').value;
    var total = price * nights;
    alert(total);
    $('#pricepernight').val(total);
    //$('#pricetotal').val(total - ((total / 100) * 21));
}); 

在 mootools 1.2+ 中,这应该是:

$('nights').addEvent('keyup', function(){
    var places = $('places').get('value');
    var price = values[places];
    var nights = $('nights').get('value');
    var total = price * nights;
    alert(total);
    $('pricepernight').set('value', total);
    //$('#pricetotal').val(total - ((total / 100) * 21));
}); 

有一个隐含的全局数组值。此外,这也不是很安全,因为夜晚可能不是整数。

重点是。 #id -> id.val() -> set('value', 'newvalue') - 或 .get('value')

关于javascript - 为什么我不能使用 MooTools 设置我的输入字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9669421/

相关文章:

javascript - 在 Ajax 中实现这个精确的 PHP foreach 功能?

javascript - 如何在 JavaScript 中去除数组元素中的非整数

django - 如何从 Django 中的 UserCreationForm 中删除用户名字段

javascript - 什么时候在 Node.js 中使用 eventEmitter?

javascript - 为什么 React 的 useCallback 没有使用 ref 进行优化?

javascript - jquery tablesorter 类 sticky-false

forms - Symfony2 使用模型中的数据预填充表单?

javascript - 查看源代码时如何使代码成为单行?

Delphi:单击控件时如何调用方法?

jquery - 禁用和启用 Jquery 自动完成