2013-03-16 107 views
-3

我測試了一個劇本我寫了一個計算器,我使用的HTML表單元素拿在用戶輸入值和調用外部腳本的功能,只要點擊該按鈕JavaScript表單錯誤 - 腳本不運行

這裏是我的HTML代碼:

<body> 
    <script> 
    $(document).ready(function() { 
    //on add buttton depressed, fire event which calls the initializer function 
    $('#form3').on('click','button',function() { 
    var ans = $(initializer()); 
    $('#form6').text(ans); 
    }); 
}); 
</script> 
<div id="wrapper"> 
<p>INPUT TEXT IN ROMAN NUMERALS</p> 
<form id="form1" class="" > 
    <input type="text" id="form2" class="" width="1"/> 
    <button name="button" id="form3" class=""> + </button> 
    <input type="text" id="form4" class="" /> 
    <button name="button2" id="form5" class=""> = </button> 
    <input type="text" name="result" id="form6" class=""></input> 
</form> 
</body> 
</html> 

,這裏是我的函數,位於外部JavaScript文件,該文件被調用時用戶與#form3點擊按鈕作爲ID(我將其包含在head元素)

function initializer() 
{ 
    //contains user input in first box 
    var userinput_a = $('#form2').val($(this).val().toUpperCase()); 
    //contains user input in second box 
    var userinput_b = $('#form4').val($(this).val().toUpperCase()); 
    try 
    { 
    if(!validity(userinput_a, userinput_b)) 
    { 
     throw exception; 
    } 
    } 
    catch(err) 
    { 
     alert('Wrong values put in the right value'); 
    } 

    var combinedtext = userinput_a + userinput_b; 
    var stage1 = romanexpanded(combinedtext); //text contains roman to expanded 
    var stage2 = expandedtoroman(stage1);  //text contains expanded to roman 

    return stage2; 
} 

http://jsfiddle.net/Dvgqu/2/

我特地到的代碼,但我顯然不能找出從正常運行,每當我點擊調用我的函數值在我的輸入框按鈕停止我的腳本消失。

任何幫助將不勝感激。謝謝!

編輯: 我已經使用了javascript調試控制檯,並從我的代碼中走過我推斷它是要麼調用初始化函數或我訪問表單值的方式,唯一的問題是我不'看看我的語法或邏輯有什麼問題。

+0

你正在得到什麼錯誤? – 2013-03-16 21:29:37

+0

也許你可以發佈你得到的錯誤? 使用Firefox或Chrome的Javascript調試控制檯。他們是很好的開發人員工具,適合這種情況。 – ffledgling 2013-03-16 21:30:56

+0

我不明白$('#form2')。val($(this).val()。toUpperCase()); – 2013-03-16 21:32:34

回答

2

只是.text(stage2)。沒有理由從initializer$結果包:

.text(initializer());

0

你的委託不正確。這:

$('#form3').on('click','button',function() { 
    var ans = $(initializer()); 
    $('#form6').text(ans); 
}); 

將無法​​正常工作,因爲#form3按鈕。正如@ user1737909所述,您不會將您的函數調用包裝在jQuery選擇器中。此外,使用.val()方法:

$('#form3').on('click', function() { 
    var ans = initializer(); 
    $('#form6').val(ans); 
}); 
+0

看看初始化定義 – 2013-03-16 21:34:48

+0

@WaqarAlamgir裏面的代碼看起來相當靠不住的(我不知道是什麼OP正在嘗試做),但最終的結果似乎應該是一個字符串。我錯過了什麼嗎? – 2013-03-16 21:38:34

+0

是的最終結果應該是一個字符串 – lboyel 2013-03-16 22:08:02