[英]Why can't I set my input field with MooTools?
我有一個文檔,當用戶在一個輸入中輸入內容時,我需要在第二個輸入框中顯示一個響應。 我可以得到用戶給定的值,我可以處理它,但是當我嘗試設置第二個輸入框的結果時,我得到錯誤$ .field為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')
嘗試這個
$('#nights').keyup(function(){
var places = $('#places').val();
var price = values[places];
var nights = $('#nights').val();
var total = parseInt(price) * parseInt(nights);
alert(total);
$('#pricepernight').val(total);
//$('#pricetotal').val(total - ((total / 100) * 21));
});
什么是values[places]
?
這里有幾個小錯誤。
首先,您應該使用#符號根據您的ID屬性(如地點和夜晚)進行選擇
其次,使用val()從html控件讀取值而不是值
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.