简体   繁体   English

如何使用Javascript减去两个文本框值并在另一个文本框中显示

[英]How to subtract two text box values and display in another text box using Javascript

I want to fins the range between two number entered in a textbox and display it in another text box. 我想查找在一个文本框中输入的两个数字之间的范围,并在另一个文本框中显示它。

I am using the event onBlur. 我正在使用onBlur事件。

Initially i got NaN in the result textbox. 最初,我在结果文本框中得到了NaN。

Later I used ParseInt now no value is getting displayed. 后来我使用了ParseInt,现在没有显示任何值。

My code : 我的代码:

<script type="text/javascript">
function countRows(){

    var rows=document.getElementById("rows");
    var startMsisdn=parseInt(document.getElementByName("startmsisdn").value);
    var endMsisdn=parseInt(document.getElementByName("endmsisdn").value);
    rows.value=endMsisdn-startMsisdn;

}

</script>

HTML CODE : HTML代码:

                <div class="col-md-4">
                    <label>MSISDN Start Range </label> <input class="form-control"
                        type="text" name="startmsisdn"
                        placeholder="MSISDN Starting Range" required>
                </div>
                <div class="col-md-4">
                    <label>MSISDN End Range </label> <input class="form-control"
                        type="text" name="endmsisdn" placeholder="MSISDN Ending Range"
                        required>
                </div>
            </div>
            <br>
            <div class="row">
                <div class="col-md-4">
                    <label>IMSI Start Range </label> <input class="form-control"
                        type="text" name="startimsi" placeholder="IMSI Starting Range"
                        required>
                </div>
                <div class="col-md-4">
                    <label>IMSI End Range </label> <input class="form-control"
                        type="text" name="endimsi" placeholder="IMSI Ending Range"
                        required onblur="countRows()">
                </div>
                <div class="col-md-4">
                    <label>No of rows </label> <input class="form-control"
                        type="text" name="rows"  id="rows"
                        required>
                </div>

Add default value for empty field 为空字段添加默认值

Try to get element by id for input field; 尝试通过id获取输入字段的元素;

like this 像这样

Html HTML

div class="col-md-4">
<label>IMSI Start Range </label> 
<input class="form-control"
   type="text" id="startimsi" name="startimsi" placeholder="IMSI Starting Range"
   required>
</div>
<div class="col-md-4">
   <label>IMSI End Range </label> 
   <input class="form-control"
      type="text" id="endimsi" name="endimsi" placeholder="IMSI Ending Range"
      required onblur="countRows()">
</div>

Javascript Java脚本

var startMsisdn=parseInt(document.getElementById("startmsisdn").value) || 0;
var endMsisdn=parseInt(document.getElementById("endmsisdn").value) || 0;

You have two issues here. 您在这里有两个问题。 parseInt may return NaN , so any value you add to it will also always return NaN . parseInt可能返回NaN ,因此您添加到其中的任何值也将始终返回NaN The second issue is there is no getElementByName method (singular). 第二个问题是没有getElementByName方法(单数)。 It's getElementsByName which returns an array-like object: getElementsByName ,它返回一个类似数组的对象:

function countRows(){

    var rows=document.getElementById("rows");
    var startMsisdn=parseInt(document.getElementsByName("startmsisdn")[0].value, 10) || 0;
    var endMsisdn=parseInt(document.getElementsByName("endmsisdn")[0].value, 10) || 0;
    rows.value=endMsisdn-startMsisdn;

}

You may notice that I added an extra parameter to your parseInt too. 您可能会注意到,我也为parseInt添加了一个额外的参数。 This is to force non-ES5 compliant browsers to parse as decimal - they may default to using octal for parsing which will result in unexpected results if a zero-prefixed value is entered. 这是为了强制不符合ES5的浏览器将其解析为十进制-它们可能默认使用八进制进行解析,如果输入零前缀值,则将导致意外结果。

Working Example 工作实例

 function countRows(){ var rows=document.getElementById("rows"); var startMsisdn=parseInt(document.getElementsByName("startmsisdn")[0].value, 10) || 0; var endMsisdn=parseInt(document.getElementsByName("endmsisdn")[0].value, 10) || 0; rows.value=endMsisdn-startMsisdn; } 
 <div class="col-md-4"> <label>MSISDN Start Range </label> <input class="form-control" type="text" name="startmsisdn" placeholder="MSISDN Starting Range" required> </div> <div class="col-md-4"> <label>MSISDN End Range </label> <input class="form-control" type="text" name="endmsisdn" placeholder="MSISDN Ending Range" required> </div> <br> <div class="row"> <div class="col-md-4"> <label>IMSI Start Range </label> <input class="form-control" type="text" name="startimsi" placeholder="IMSI Starting Range" required> </div> <div class="col-md-4"> <label>IMSI End Range </label> <input class="form-control" type="text" name="endimsi" placeholder="IMSI Ending Range" required onblur="countRows()"> </div> <div class="col-md-4"> <label>No of rows </label> <input class="form-control" type="text" name="rows" id="rows" required> </div> </div> 

try this by replacing NaN with 0 .. 通过将NaN替换为0来尝试此操作。

function countRows(){
    var rows = document.getElementById("rows"); 
    var startMsisdn=document.getElementById("startmsisdn").value;
    if(startMsisdn =='' ){ startMsisdn =0;}
    var endMsisdn=document.getElementById("endmsisdn").value;
    if(endMsisdn =='' ){ endMsisdn =0;}
    rows.value= parseInt(endMsisdn) - parseInt(startMsisdn);
}

HERE is the FIDDLE 这里是FIDDLE

Add These line of code in script its will work fine. 在脚本中添加以下代码行即可正常工作。

function countRows() {

            var rows = document.getElementById("rows");
            var startMsisdn = parseInt(document.getElementsByName("startmsisdn")[0].value);
            var endMsisdn = parseInt(document.getElementsByName("endmsisdn")[0].value);
            rows.value = endMsisdn - startMsisdn;

        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何使用javascript通过另一个文本框的输入值更改两个文本框的显示值? - How to change the display value of two text boxes through the input value of another text box using javascript? 使用javascript,两个文本框值求和成表中的另一个文本框? - two text box values sum into another text box in a table using javascript? 添加文本框值并使用javascript显示它 - adding the text box values and display it using javascript 如何在另一个框中显示两个文本框的总值 - Javascript - How to show total value of two text box in another box - Javascript 根据使用javascript在另一个文本框中输入的值,自动在文本框中显示值 - Automatically display value in a text box based on the value entered in another text box using javascript 如何在一个文本框中连接两个或多个文本框值 - how to concatenate two or more text box values in one text box 如何使用javascript在文本框上使用输入值制作计算器并使用按钮执行加法和减法 - how to make calculator using javascript using on text box for input value and perform add and subtract using button 如何在两个不同的文本框中显示值 - How to display value on two different text box 根据在另一个文本框中输入的文本在文本框中显示文本 - Display Text in text box according to text entered in another text box 如何使用Javascript根据文本框输入显示不同的输出? - How to display different output based on a text box input using Javascript?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM