簡體   English   中英

為什么我不能用MooTools設置我的輸入字段?

[英]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]

這里有幾個小錯誤。

  1. 首先,您應該使用#符號根據您的ID屬性(如地點和夜晚)進行選擇

    查看http://api.jquery.com/id-selector/

  2. 其次,使用val()從html控件讀取值而不是值

    查看http://api.jquery.com/val/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM