Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我不能用MooTools设置输入字段?_Javascript_Forms_Events_Input_Mootools - Fatal编程技术网

Javascript 为什么我不能用MooTools设置输入字段?

Javascript 为什么我不能用MooTools设置输入字段?,javascript,forms,events,input,mootools,Javascript,Forms,Events,Input,Mootools,我有一个文档,当用户在一个输入中输入一些东西时,我需要在第二个输入框中显示响应。我可以得到用户给定的值,我可以处理它,但是当我试图设置第二个输入框并得到结果时,我得到的错误$。字段为空。代码如下: $('places').addEvent('keyup', function(){ var places = $('places').value; alert("PLACE: "+places); var price = values[places]; var nigh

我有一个文档,当用户在一个输入中输入一些东西时,我需要在第二个输入框中显示响应。我可以得到用户给定的值,我可以处理它,但是当我试图设置第二个输入框并得到结果时,我得到的错误$。字段为空。代码如下:

$('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));
});
所以我得到了位置值。我从assoc数组中提取了该位置的价格。然后,我将该价格乘以用户在字段中输入的夜数,这就是我的总金额。这是我无法设定的数额。请注意,警报显示的金额正确

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>
有什么想法/建议吗?提前谢谢你

试试这个

$('#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));
});

什么是值[位置]?

这里有几个小错误

首先,您应该根据id属性使用符号进行选择 喜欢地方和夜晚

检查

其次,使用val从html控件读取值,而不是 比价值

检查


对。您似乎混合使用了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'

可能还值得注意的是,我正在使用MooTools.MooTools?不是jQuery?如果您使用的是MooTools,为什么问题被标记为jQuery,为什么jQuery出现在标题中?$'addEvent不是jQuery。似乎您混淆了MooTools和jQuery。在某些地方,您使用的是MooTools的document.id快捷方式$'places',而稍后您使用的是jQuery$pricepernight?好吧,那么我肯定是将两者混淆了。看来我得好好看看这东西了。我对这两个都不熟悉。编辑标签和标题。感谢您提供的repliesvalues[]是一个包含大量价格的assoc数组。用户输入整数1-10并选择哪个位置。我知道…但这是客户想要的方式。然后根据用户给出的索引将价格从数组中取出。FYI与使用[]表示法相比,有些人认为使用点表示法更容易读取,因此var price=values[places]也可以是var price=values.places,如果您希望它默认值,以防由于某些原因values.places未定义,您可以进一步执行price=values.places | 0;其中0可以是任何整数,也可以用引号括起来放置默认字符串。您好,感谢您的回复。我使用id pricepernight访问我的输入字段。这不是你的意思吗?或者我理解错了吗?你这样做是正确的,因为身份证价格是每晚的,但不是身份证地点和夜晚的。同样,你需要解析数字,因为你所做的计算对字符串不起作用,并且可能会给出令人尴尬的输出。好的,谢谢你的回答。事情慢慢变得清晰起来:我更新了我的代码,使之与您回复之前的代码一致。我会看看我现在能不能让它工作!是的,看看这个证明了它现在可以很好地工作,虽然我已经用了一个下拉列表和一个匹配的价格图,使它更容易-我想在你的情况下,事情会更复杂-例如,松散的键入:直到它击中一个匹配。你,我的朋友,是了不起的。伟大的例子和网站。如果我有足够的时间,我会+1谢谢你!mootool的等价物是什么?有什么想法吗?Firebug告诉我.get不是有效函数:$places.get不是函数[Break On This Error]var places=$'places.get'value';当地有什么版本的mootools?在“普通”英语字符集之外是否有特殊字符?如果您愿意,请访问irc.freenode.net mootools并向我键入nick coda,我会进一步查看。
$('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));
});