在 Yii 2 中使用 js 函数将 textInput 值添加到另一个文本输入
adding textInput values to another text input using js function in Yii 2
简单地说,我正在尝试将文本输入字段的值添加到另一个字段中:http://jsfiddle.net/MaK2k/1/
我的表单代码:
<?php
$script = <<< JS
$('#amount_value_id').keyup(function(){
var amountSum=0;
$('#amount_value_id').each(function(){
if (this.value != "")
amountSum+=parseInt(this.value);
});
// alert('foo');
$("#totalamount").text(amountSum);
//console.log(amountSum);
});
JS;
$this->registerJs($script);
?>
<?php $form = ActiveForm::begin(["id" => "project-form"]); ?>
<?php foreach ($project as $i => $project) { ?>
<div class="col-lg-2 col-md-3" id="amount_value_id">
<?= $form->field($project, "[{$i}]amount")->textInput(); ?>
</div>
<?php } ?>
<div class="col-lg-2" id="totalamount">
<?php echo $form->field($model, 'total_amount')->textInput(['maxlength' => 128, 'id' => 'totalamount']) ?>
</div>
在文本中,应包含总和的总金额输入为 NaN !! .我在做什么??
我测试了你的 jsfiddle。当你输入数值时一切正常,但当你输入文本值时,它会给出"NaN"。很明显,因为您正在使用 parseInt()
。当您在输入字段中输入 "test" 之类的文本时,您的代码会尝试将 "text" 字符串转换为整数值,因此结果为 NaN。此问题的解决方法是阻止用户输入非数字值。另一种解决方案是使用 javascript isNaN()
函数。 isNaN()
检查 illegal
数字值。
简单地说,我正在尝试将文本输入字段的值添加到另一个字段中:http://jsfiddle.net/MaK2k/1/
我的表单代码:
<?php
$script = <<< JS
$('#amount_value_id').keyup(function(){
var amountSum=0;
$('#amount_value_id').each(function(){
if (this.value != "")
amountSum+=parseInt(this.value);
});
// alert('foo');
$("#totalamount").text(amountSum);
//console.log(amountSum);
});
JS;
$this->registerJs($script);
?>
<?php $form = ActiveForm::begin(["id" => "project-form"]); ?>
<?php foreach ($project as $i => $project) { ?>
<div class="col-lg-2 col-md-3" id="amount_value_id">
<?= $form->field($project, "[{$i}]amount")->textInput(); ?>
</div>
<?php } ?>
<div class="col-lg-2" id="totalamount">
<?php echo $form->field($model, 'total_amount')->textInput(['maxlength' => 128, 'id' => 'totalamount']) ?>
</div>
在文本中,应包含总和的总金额输入为 NaN !! .我在做什么??
我测试了你的 jsfiddle。当你输入数值时一切正常,但当你输入文本值时,它会给出"NaN"。很明显,因为您正在使用 parseInt()
。当您在输入字段中输入 "test" 之类的文本时,您的代码会尝试将 "text" 字符串转换为整数值,因此结果为 NaN。此问题的解决方法是阻止用户输入非数字值。另一种解决方案是使用 javascript isNaN()
函数。 isNaN()
检查 illegal
数字值。