2014-03-25 34 views
0

我有一個帶有2個文本框的網頁,它包含一個按鈕和一個段落。我想要發生的是如果用戶鍵入一個數字到textbox1然後另一個數字到textbox2並按下名爲計算的按鈕。它會提出一個聲明,說明數字是否低於,高於或等於textbox1中的數字。這是我的,但它沒有工作。它保持不變。如果變量輸入不同,則顯示一條消息

<input type="text" id="textbox1" value="Enter a number" onfocus="javascript:this.value='';"> 
<input type="text" id="textbox2" value="Enter another number" onfocus="javascript:this.value='';"> 
<button onclick="calculate()">Calculate</button> 
<p id="demo"></p> 
<script> 
function calculate(){ 
var x=""; 
if (textbox1>textbox2){ 
    x="more than"; 
    } 
else if (textbox1=textbox2){ 
    x="Same"; 
    } 
else{ 
    x="Lower"; 
    } 
document.getElementById("demo").innerHTML=x; 
} 
</script> 

有誰知道爲什麼?謝謝

回答

1

使用此:

function calculate() { 
    var x = ""; 
    if (Number(textbox1.value) > Number(textbox2.value)) { 
     x = "more than"; 
    } else if (Number(textbox1.value) == Number(textbox2.value)) { 
     x = "Same"; 
    } else { 
     x = "Lower"; 
    } 
    document.getElementById("demo").innerHTML = x; 
} 

演示:http://jsfiddle.net/KDLvJ/1

+0

如果我進入'1'和' 1.0'? –

+0

@BradChristie,更好地檢查編輯 –

+0

。儘管爲了性能,你應該存儲轉換後的值。 –

0

你在這裏執行任務(=):

else if (textbox1=textbox2) 

它應該是一個比較(==):

else if (textbox1==textbox2) 

它應該是textbox1.valuetextbox1.value

jsFiddle example

3

您應該編輯你的代碼是這樣的:

<input type="text" id="textbox1" value="Enter a number" onfocus="javascript:this.value='';"> 
<input type="text" id="textbox2" value="Enter another number" onfocus="javascript:this.value='';"> 
<button onclick="calculate()">Calculate</button> 
<p id="demo"></p> 
<script> 
function calculate() 
{ 
var textbox1 = parseFloat(document.getElementById('textbox1').value); 
var textbox2 = parseFloat(document.getElementById('textbox2').value); 
var x=""; 
if (textbox1>textbox2) 
    { 
    x="more than"; 
    } 
else if (textbox1==textbox2) 
    { 
    x="Same"; 
    } 
else 
    { 
    x="Lower"; 
    } 
document.getElementById("demo").innerHTML=x; 
} 
</script> 

在原來的劇本,TextBox1的1和TextBox是不確定的(功能不知道他們是什麼)。

0

你忘記了在.value的,此刻你所得到的實際DOM對象,但它們的值。所以,簡單地修改

if (textbox1>textbox2) 

if (textbox1.value>textbox2.value) 
0

他們是字符串,所以你需要他們的數字:

// retrieve the textboxes (inputs) 
var tb1 = document.getElementById('textbox1'), 
    tb2 = document.getElementById('textbox2'); 

// save the values as numeric 
var tb1v = new Number(tb1.value), 
    tb2v = new Number(tb2.value); 

// eventual result 
var x = ''; 

// Are they numbers? When you use `new Number` and the value isn't 
// numeric, you can check the value using isNaN (is Not-a-Number) 
if (isNaN(tb1v) || isNaN(tb2v)){ 
    x = 'Invalid number(s)'; 
} else{ 
    // now compare 
    if (tb1v > tb2v){ 
    x = 'more than'; 
    } else if (tb2v > tb1v) { 
    x = 'Lower'; 
    } else { 
    x = 'Same'; 
    } 
} 

// output it to screen 
document.getElementById('demo').innerHTML = x; 

Working example

相關問題