2017-08-07 112 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);