javascript
  • jquery
  • 2013-06-27 62 views 0 likes 
    0

    HTML/PHP:的JavaScript返回「楠」的複選框總

    echo "<input type='checkbox' id='chk_esitmate' onchange='calculate_estimate(this);' 
    name='" . $row['id'] ." value=". ($row['value'] ? $row['value']: '0') . 
    "'/>"; 
    

    左右各一的樣子:

    <input type='checkbox' id='chk_estimate' onchange='calculate_estimate(this);' name = '14' value=40/> 
    

    的JavaScript:

    var estimate = 0; 
    
    function calculate_estimate(elem) 
            { 
             var value = parseInt(elem.value, 10); 
             var status = jQuery('#span_estimate'); 
             if (elem.checked) 
             { 
             window.estimate += value; 
             status.html(window.estimate); 
             } 
             else { 
             window.estimate -= value; 
             status.html(window.estimate); 
             } 
            } 
    

    然而每次我點擊一個複選框,它會返回NaN(不是 一個號碼)。有誰知道我要去哪裏?我已經使用parseInt函數

    +0

    沒有投下來,偏偏你使用內聯事件,如果你使用jQuery? – Daedalus

    +0

    如果第一個字符不能轉換爲數字,parseInt()將返回NaN。 –

    +0

    另外,你的代碼[對我很好](http://jsfiddle.net/7AxWc/)。你有沒有從某處複製這個PHP代碼? – Daedalus

    回答

    0

    既然你已經使用jQuery,你爲什麼不去做這樣的:我

    var estimate = 0; 
    
    $('#chk_estimate').click(function() { 
    
        var value = $(this).val(); 
    
        // do your stuff in here 
    
    }); 
    
    1

    在這裏工作 - http://jsfiddle.net/atif089/NyA4H/

    確保calculate_estimate在標題定義不在頁腳。

    0

    你可以使用JavaScript來了解複選框是否被選中或不

    if(document.getElementById('chk_estimate').checked==true) 
    { 
    var num=document.getElementById('chk_estimate').value; 
         alert(num); 
    } 
    
    +0

    c.c這甚至沒有解決這個問題。 – Daedalus

    0

    由於我沒有你直接訪問文件,這個答案大多是在黑暗中拍攝,但它來自過去經驗。正如@SubirKumarSao所說的,如果遇到的第一個字符不能轉換爲數字,parseInt會拋出NaN。這使我相信你從另一個網站複製了一個隱藏的角色..這是處理這些錯誤時最常見的情況,當然這個角色也可以出現在你的$row陣列中。除此之外...

    echo "<input type='checkbox' id='chk_esitmate' onchange='calculate_estimate(this);' 
    name='" . $row['id'] ." value=". ($row['value'] ? $row['value']: '0') . 
    // missing quote here^and^here 
    "'/>"; 
    

    這條線是錯誤的;您在結束雙引號標記之後忘記了單引號標記,並且在打開雙引號標記之前,我留下了一條註釋,指出缺少單引號的位置。

    行應該是什麼樣子:

    echo "<input type='checkbox' id='chk_esitmate' onchange='calculate_estimate(this);' name='" . $row['id'] ."' value='". ($row['value'] ? $row['value']: '0') ."'/>"; 
    
    +0

    看隊友,沒有任何隱藏的字符。代碼生成的html是:'',正如它在引用編輯後在網站上顯示的一樣 – surfer190

    +0

    @StephenH對不起,但我試圖用有限的信息在這裏調試。隱藏的字符似乎是唯一可能的原因,因爲代碼工作正常否則。請忍耐我吧;保存測試頁/網站生成的html內容,然後使用notpad ++等代碼編輯器突出顯示'=「38」'。假設您正在使用的編輯器計算選定的字符,那麼當然應該讀取5,如果一切都如實應有的話。 – Daedalus

    0

    好了,我已經解決了這個問題,它是我不明白的錯誤。

    我在頁面上有javscript函數:calculate_estimatecalculate_remaining

    我設置的全局變量var estimate = 0;

    在腳本的最頂端,然後我下面放置了calculate_remaining函數,然後下面就是該calculate_estimate功能。

    我不知道爲什麼會影響它作爲第一個功能不使用estimate variable

    抱歉耽誤你的時間,感謝您的幫助

    相關問題