2017-08-07 161 views
0

我有3个输入是这样的:自动计算的输入值与JavaScript

<input type="text" id ="text1"/><br> 
<input type="text" id ="text2"/><br> 
<input type="text" readonly="readonly" disabled="disabled" id ="text3"/> 

的第三输入被禁用,并且我喜欢他的值将等于:(VAL(文本2)/缬氨酸(文本1)* 100-100) whene我通过其他两个输入

所以该值我试试这个脚本:

var p1 = document.getElementById('#text1').value; 
var p2 = document.getElementById('#text2').value; 
document.getElementById('#text3').value = ((p1/p2)*100)-100; 

但不工作,有人能帮助我吗?

+4

打开浏览器控制台,您会发现显示的错误。 'document.getElementById('#text1')'不正确。你不需要在选择器中有'#'。 'document.getElementById('text1')' – NewToJS

+0

thanx但我怎么能得到这个值瞬间whene我通过其他输入的两个值? –

+0

使用事件侦听器...'onchange'或'oninput'可以正常工作。 – NewToJS

回答

6

#存在于jquery中。你应该输入纯javascript:

var p1 = document.getElementById('text1').value; 
var p2 = document.getElementById('text2').value; 
document.getElementById('text3').value = ((p1/p2)*100)-100; 
+1

实际上'#'来自CSS,jQuery只是利用它。两者都使用它来标识元素的ID。 ¡\\ _(ツ)_/ –

+0

当我传递input1和input 2的值时,我该如何获得它? –

+2

@JayBlanchard也可以在'querySelector()'中使用'''所以它不仅仅是'CSS'或'jQuery' – NewToJS

0

说明:您使用的document.getElementById检索从文本框中 价值,你都采用什么方法是错误的。

方法一:

var p1 = document.getElementById('text1').value; 
var p2 = document.getElementById('text2').value; 
document.getElementById('text3').value = ((p1/p2)*100)-100; 

你可以采取另一种方法是

var p1 = $('#text1').val(); 
var p2 = $('#text2').val; 
var p3 = ((p1/p2)*100)-100; 
$('#text3').val(p3); 

从已给出的投入所获得的价值瞬时

HTML:

<input type="text" id ="text1" onblur="someFunction()"/><br> 
<input type="text" id ="text2" onblur="someFunction()"/><br> 
<input type="text" readonly="readonly" disabled="disabled" id ="text3"/> 

使用Javascript/jQuery的:

function someFunction() 
{ 
    var p1 = $('#text1').val(); 
    var p2 = $('#text2').val; 
    if(p1=='' || p2=='') 
    { 
     alert('Please Fill all the Values'); 
    } 
    else 
    { 
     var p3 = ((p1/p2)*100)-100; 
     $('#text3').val(p3); 
    }  
} 
+0

我怎样才能瞬间得到它只是当我通过input1和输入2的值? –

+0

您可以使用'onchange()'或'onblur()'jquery事件来瞬间计算过程 –

+0

我该怎么做到这一点? –

1

删除 '#',他们不应该在这里。 '#'用于JQuery而非原始JS。

var p1 = document.getElementById('text1').value; 
var p2 = document.getElementById('text2').value; 
document.getElementById('text3').value = ((p1/p2)*100)-100; 

或者,如果你正在使用JQuery:

var p1 = $('#text1').val(); 
var p2 = $('#text').val(); 
$('#text3').val(((p1/p2)*100)-100); 
0

或者使用JQuery,你有这样的标签(短版):

var p1 = $('#text1').value; 
var p2 = $('#text2').value; 
if(p2 != 0) 
{ 
    $('#text3').value = ((p1/p2)*100)-100; 
} 

不要忘记检查分母0.

+0

如果OP没有在他们的项目中包含jQuery,该怎么办? –

+0

@JayBlanchard如果OP没有在他们的项目中包含'jQuery'库或者知道如何这样做,那么它不应该被标记在问题中,因为OP将不会使用它。 – NewToJS

+0

@JayBlanchard在这种情况下,我不会添加答案。但他标记为JQuery。 – user4035

0

用三行代替你的代码,

var p1 = parseFloat(document.getElementById('text1').value); 
var p2 = parseFloat(document.getElementById('text2').value); 
document.getElementById('#text3').value = parseFloat(((p1/p2)*100)-100);