2011-11-08 45 views
1

http://windowsnaarlinux.nl/#distrokiezer - 暫時地以PHP的版本替換頁面,這裏的JavaScript版本:http://windowsnaarlinux.nl/pages/distrokiezer.html
提交按鈕只能當第一次2個字段爲空


當你離開的前兩個字段的一個空點擊提交按鈕(標題爲Bevestigen),你會收到一個警告,並且腳本按照它應該做的那樣結束。但是當你填寫前兩個字段,然後點擊提交時,什麼都不會發生。它不會彈出任何警報,因爲它應該。在Chrome的JavaScript控制檯中也沒有出現任何類型的錯誤或警告。

原始頁面(至極的jQuery的加載內容爲div.window#content一)位於:http://windowsnaarlinux.nl/pages/distrokiezer.html
可能是值得一提的是它之前工作得很好,而且老實說,我沒有線索我自己,我做了什麼打破它。


......我只是注意到我忘記了當我重寫腳本時輸出結果給用戶的部分>。 <

+0

你可以發佈JavaScript顯示警報? –

+0

@George它只是在'distrokiezer.htm'文件的源代碼中。但是,無論如何,這裏是JavaScript:http://pastebin.com/ikLPpBRE – RobinJ

回答

1

的問題是,當一個字段爲空的警告纔會出現,因爲留空,當第2個域是文本輸入值沒有像你的代碼檢查:

if ((stop == false) && (document.getElementById('q1a').value == '')) 

然而,當您的選擇框未被修改,其默認值是導致javascript不觸發的第一個選項的值。

把下面的內容爲您所有的選擇形式的第一個選項:

<option value="" selected="selected">Please select an option</option> 

這確保了默認值是什麼。只要確保阻止使用該選項的人(如你已經),因爲它最有可能意味着什麼。

除了我的評論,這就是爲什麼當兩個複選框被填充時,目前沒有收到警報。

是整個腳本....

var distros = new Array('ubuntu', 'ubuntu-lts', 'mint', 'mintdebian', 'mintlxde', 'mintdebianxfce', 'elementary', 'debian-stable', 'debian-unstable', 'debian-testing', 'fedora', 'fedorakde', 'fedoralxde', 'fedoraxfce', 'centos', 'archlinux', 'puppylinux', 'lucidpuppy', 'crunchbang', 'dsl', 'tinycore', 'pinguyos', /*'gentoo',*/ 'mandriva', 'mageia', 'lubuntu', 'xubuntu', 'kubuntu', 'chakra', 'slackware', 'zorin', 'bodhi', 'vector', 'antix', 'opensuse'); 

    function zoekDistro() 
    { 
     try 
     { 
      var stop = false; 

      //q1a 
      var q1a = parseInt(document.getElementById('q1a').value); 
      if ((stop == false) && (document.getElementById('q1a').value == '')) 
      { 
       alert('Geen antwoord opgegeven bij vraag 1a!'); 
       stop = true; 
      } 
      if (stop == false) 
      { 
       if (q1a < 1600) 
       { 
        dumpDistro('pinguyos'); 
        dumpDistro('mintkde'); 
        dumpDistro('kubuntu'); 
       } 
       if (q1a < 1400) 
       { 
        dumpDistro('mint'); 
        dumpDistro('fedorakde'); 
        dumpDistro('fedora'); 
        dumpDistro('pinguyos'); 
        dumpDistro('chakra'); 
        dumpDistro('ubuntu'); 
        dumpDistro('mandriva'); 
        dumpDistro('opensuse'); 
       } 
       if (q1a < 1200) 
       { 
        dumpDistro('ubuntu-lts'); 
       } 
       if (q1a < 1000) 
       { 
        dumpDistro('mintdebian'); 
        dumpDistro('debian-stable'); 
        dumpDistro('debian-testing'); 
        dumpDistro('debian-unstable'); 
        dumpDistro('mageia'); 
        dumpDistro('xubuntu'); 
        dumpDistro('crunchbang'); 
       } 
       if (q1a < 800) 
       { 
        dumpDistro('mintlxde'); 
        dumpDistro('mintdebianxfce'); 
        dumpDistro('elementary'); 
        dumpDistro('fedoralxde'); 
        dumpDistro('fedoraxfce'); 
        dumpDistro('centos'); 
        dumpDistro('archbang'); 
        dumpDistro('zorin'); 
       } 
       if (q1a < 600) 
       { 
        dumpDistro('lubuntu'); 
        dumpDistro('slackware'); 
        dumpDistro('archlinux'); 
       } 
       if (q1a < 400) 
       { 
        dumpDistro('vector'); 
        dumpDistro('gentoo'); 
       } 
       if (q1a < 300) 
       { 
        dumpDistro('antix'); 
        dumpDistro('lucidpuppy'); 
        dumpDistro('bodhi'); 
       } 
       if (q1a < 200) 
       { 
        dumpDistro('puppylinux'); 
        dumpDistro('dsl'); 
       } 
       if (q1a < 100) 
       { 
        dumpDistro('tinycore'); 
       } 
      } 
      //q2a 
      var q1b = parseInt(document.getElementById('q1b').value); 
      if ((stop == false) && (document.getElementById('q1b').value == '')) 
      { 
       alert('Geen antwoord opgegeven bij vraag 1b!'); 
       stop = true; 
      } 
      if (stop == false) 
      { 
       if (q1b < 2000) 
       { 
        dumpDistro('pinguyos'); 
       } 
       if (q1b < 1600) 
       { 
        dumpDistro('kubuntu'); 
        dumpDistro('ubuntu'); 
       } 
       if (q1b < 1400) 
       { 
        dumpDistro('fedora'); 
        dumpDistro('fedorakde'); 
       } 
       if (q1b < 1000) 
       { 
        dumpDistro('ubuntu-lts'); 
        dumpDistro('mint'); 
        dumpDistro('debian-unstable'); 
        dumpDistro('mandriva'); 
        dumpDistro('mageia'); 
        dumpDistro('xubuntu'); 
        dumpDistro('chakra'); 
        dumpDistro('opensuse'); 
       } 
       if (q1b < 800) 
       { 
        dumpDistro('mintlxde'); 
        dumpDistro('lubuntu'); 
       } 
       if (q1b < 700) 
       { 
        dumpDistro('elementary'); 
       } 
       if (q1b < 512) 
       { 
        dumpDistro('mintdebian'); 
        dumpDistro('debian-testing'); 
        dumpDistro('fedoralxde'); 
        dumpDistro('fedoraxfce'); 
        dumpDistro('crunchbang'); 
       } 
       if (q1b < 400) 
       { 
        dumpDistro('mintdebianxfce'); 
        dumpDistro('debian-stable'); 
        dumpDistro('archbang'); 
        dumpDistro('archlinux'); 
        dumpDistro('centos'); 
        dumpDistro('zorin'); 
        dumpDistro('vector'); 
       } 
       if (q1b < 256) 
       { 
        dumpDistro('gentoo'); 
        dumpDistro('slackware'); 
       } 
       if (q1b < 128) 
       { 
        dumpDistro('bodhi'); 
        dumpDistro('puppylinux'); 
       } 
       if (q1b < 64) 
       { 
        dumpDistro('lucidpuppy'); 
        dumpDistro('antix'); 
       } 
       if (q1b < 48) 
       { 
        dumpDistro('tinycore'); 
       } 
      } 
      //q2a 
      var q2a = document.getElementById('q2a').value; 
      if ((stop == false) && (q2a == '')) 
      { 
       alert('Geen antwoord opgegeven bij vraag 2a!'); 
       stop = true; 
      } 
      if (stop == false) 
      { 
       if (q2a === 'nee') 
       { 
        dumpDistro('debian-stable'); 
        dumpDistro('debian-testing'); 
        dumpDistro('debian-unstable'); 
        dumpDistro('centos'); 
        dumpDistro('archlinux'); 
        dumpDistro('puppylinux'); 
        dumpDistro('dsl'); 
        dumpDistro('tinycore'); 
        dumpDistro('gentoo'); 
        dumpDistro('chakra'); 
        dumpDistro('slackware'); 
        dumpDistro('vector'); 
        dumpDistro('mandriva'); 
        dumpDistro('archbang'); 
        dumpDistro('antix'); 
       } 
      } 
      //q2b 
      var q2b = document.getElementById('q2b').value; 
      if ((stop == false) && (q2b == '')) 
      { 
       alert('Geen antwoord opgegeven bij vraag 2b!'); 
       stop = true; 
      } 
      if (stop == false) 
      { 
       if (q2b === 'ja') 
       { 
        dumpDistro('debian-unstable'); 
        dumpDistro('centos'); 
        dumpDistro('archlinux'); 
        dumpDistro('archbang'); 
        dumpDistro('puppylinux'); 
        dumpDistro('dsl'); 
        dumpDistro('tinycore'); 
        dumpDistro('gentoo'); 
        dumpDistro('vector'); 
       } 
      } 
      //q2c 
      var q2c = parseInt(document.getElementById('q2c').value); 
      if ((stop == false) && (document.getElementById('q2c').value == '')) 
      { 
       alert('Geen antwoord opgegeven bij vraag 2c!'); 
       stop = true; 
      } 
      if (stop == false) 
      { 
       if (q2c < 8) 
       { 
        dumpDistro('gentoo'); 
        dumpDistro('archlinux'); 
       } 
       if (q2c < 7) 
       { 
        dumpDistro('tinycore'); 
       } 
       if (q2c < 6) 
       { 
        dumpDistro('debian-unstable'); 
        dumpDistro('centos'); 
        dumpDistro('archbang'); 
        dumpDistro('puppylinux'); 
        dumpDistro('dsl'); 
        dumpDistro('chakra'); 
        dumpDistro('slackware'); 
        dumpDistro('vector'); 
        dumpDistro('antix'); 
        dumpDistro('mandriva'); 
       } 
       if (q2c < 5) 
       { 
        dumpDistro('debian-testing'); 
       } 
       if (q2c < 4) 
       { 
        dumpDistro('crunchbang'); 
       } 
       if (q2c < 3) 
       { 
        dumpDistro('mintdebian'); 
        dumpDistro('mintdebianxfce'); 
        dumpDistro('debian-stable'); 
        dumpDistro('fedora'); 
        dumpDistro('fedorakde'); 
        dumpDistro('fedoralxde'); 
        dumpDistro('fedoraxfce'); 
        dumpDistro('mandriva'); 
       } 
      } 
      //q3a 
      var q3a = parseInt(document.getElementById('q3a').value); 
      if ((stop == false) && (document.getElementById('q3a').value == '')) 
      { 
       alert('Geen antwoord opgegeven bij vraag 3a!'); 
       stop = true; 
      } 
      if (stop == false) 
      { 
       if (q3a == 4) 
       { 
        dumpDistro('ubuntu'); 
        dumpDistro('ubuntu-lts'); 
        dumpDistro('elementary'); 
        dumpDistro('fedorakde'); 
        dumpDistro('opensuse'); 
        dumpDistro('mageia'); 
        dumpDistro('mint'); 
        dumpDistro('mintlxde'); 
        dumpDistro('lubuntu'); 
        dumpDistro('kubuntu'); 
        dumpDistro('xubuntu'); 
       } 
       if (q3a == 3) 
       { 
        dumpDistro('elementary'); 
       } 
       else if (q3a == 1) 
       { 
        dumpDistro('debian-unstable'); 
        dumpDistro('debian-testing'); 
        dumpDistro('fedoralxde'); 
        dumpDistro('fedoraxfce'); 
        dumpDistro('centos'); 
        dumpDistro('archlinux'); 
        dumpDistro('puppylinux'); 
        dumpDistro('dsl'); 
        dumpDistro('gentoo'); 
        dumpDistro('mandriva'); 
        dumpDistro('vector'); 
        dumpDistro('antix');     
       } 
      } 
      //q3b 
      var q3b = document.getElementById('q3b').value; 
      if ((stop == false) && (q3b == '')) 
      { 
       alert('Geen antwoord opgegeven bij vraag 3b!'); 
       stop = true; 
      } 
      if (stop == false) 
      { 
       if (q3b == 'ja') 
       { 
        dumpDistro('ubuntu'); 
        dumpDistro('ubuntu-lts'); 
        dumpDistro('debian-testing'); 
        dumpDistro('debian-unstable'); 
        dumpDistro('debian-stable'); 
        dumpDistro('elementary'); 
        dumpDistro('fedora'); 
        dumpDistro('fedoralxde'); 
        dumpDistro('fedoraxfce'); 
        dumpDistro('centos'); 
        dumpDistro('archlinux'); 
        dumpDistro('crunchbang'); 
        dumpDistro('archbang'); 
        dumpDistro('pinguyos'); 
        dumpDistro('gentoo'); 
        dumpDistro('mandriva'); 
        dumpDistro('xubuntu'); 
       } 
       if (q3b == 'neevoorwaarde') 
       { 
        dumpDistro('debian-testing'); 
        dumpDistro('debian-unstable'); 
        dumpDistro('debian-stable'); 
        dumpDistro('fedora'); 
        dumpDistro('centos'); 
        dumpDistro('archlinux'); 
        dumpDistro('pinguyos'); 
        dumpDistro('gentoo'); 
        dumpDistro('mandriva'); 
        dumpDistro('xubuntu'); 
       } 
       if (q3b == 'neemacos') 
       { 
        dumpDistro('debian-testing'); 
        dumpDistro('debian-unstable'); 
        dumpDistro('debian-stable'); 
        dumpDistro('fedora'); 
        dumpDistro('fedoralxde'); 
        dumpDistro('fedoraxfce'); 
        dumpDistro('centos'); 
        dumpDistro('archlinux'); 
        dumpDistro('crunchbang'); 
        dumpDistro('archbang'); 
        dumpDistro('gentoo'); 
        dumpDistro('mandriva'); 
        dumpDistro('mageia'); 
        dumpDistro('xubuntu'); 
        dumpDistro('mint'); 
        dumpDistro('mintdebian'); 
        dumpDistro('mintlxde'); 
        dumpDistro('mintdebianxfce'); 
        dumpDistro('fedorakde'); 
        dumpDistro('puppylinux'); 
        dumpDistro('lucidpuppy'); 
        dumpDistro('dsl'); 
        dumpDistro('lubuntu'); 
        dumpDistro('kubuntu'); 
        dumpDistro('chakra'); 
        dumpDistro('slackware'); 
        dumpDistro('zorin'); 
        dumpDistro('vector'); 
        dumpDistro('antix'); 
        dumpDistro('opensuse'); 
       } 
      } 
      //q3c 
      var q3c = document.getElementById('q3c').value; 
      if ((stop == false) && (q3c == '')) 
      { 
       alert('Geen antwoord opgegeven bij vraag 3c!'); 
       stop = true; 
      } 
      if (stop == false) 
      { 
       if (q3c == 'ja') 
       { 
        dumpDistro('debian-stable'); 
        dumpDistro('debian-testing'); 
        dumpDistro('debian-unstable'); 
        dumpDistro('centos'); 
        dumpDistro('gentoo'); 
       } 
      } 
      //q3d 
      var q3d = document.getElementById('q3d').value; 
      if ((stop == false) && (q3d == '')) 
      { 
       alert('Geen antwoord opgegeven bij vraag 3d!'); 
       stop = true; 
      } 
      if (stop == false) 
      { 
       if (q3d == 'stabiel') 
       { 
        dumpDistro('ubuntu'); 
        dumpDistro('mintdebian'); 
        dumpDistro('mintdebianxfce'); 
        dumpDistro('debian-unstable'); 
        dumpDistro('debian-testing'); 
        dumpDistro('fedora'); 
        dumpDistro('puppylinux'); 
        dumpDistro('dsl'); 
        dumpDistro('pinguyos'); 
        dumpDistro('mandriva'); 
        dumpDistro('kubuntu'); 
        dumpDistro('chakra'); 
        dumpDistro('slackware'); 
        dumpDistro('opensuse'); 
       } 
       else if (q3d == 'test') 
       { 
        dumpDistro('debian-stable'); 
        dumpDistro('debian-unstable'); 
       } 
       else if (q3d == 'experimenteel') 
       { 
        dumpDistro('debian-stable'); 
       } 
      } 
      if (distros.length > 6) 
      { 
       if ((q1a > 1000) && (q1b > 1000)) 
       { 
        dumpDistro('mintlxde'); 
        dumpDistro('mintdebianxfce'); 
        if (distros.length > 3) { dumpDistro('fedoralxde'); } 
        if (distros.length > 3) { dumpDistro('fedoraxfce'); } 
        if (distros.length > 3) { dumpDistro('mintdebianxfce'); } 
        if (distros.length > 3) { dumpDistro('lucidpuppy'); } 
        if (distros.length > 3) { dumpDistro('crunchbang'); } 
        if (distros.length > 3) { dumpDistro('dsl'); } 
        if (distros.length > 3) { dumpDistro('tinycore'); } 
        if (distros.length > 3) { dumpDistro('bodhi'); } 
        if (distros.length > 3) { dumpDistro('antix'); } 
        if (distros.length > 4) 
        { 
         if (q3b != 'ja') 
         { 
          dumpDistro('zorin'); 
         } 
        } 
       } 
      } 
     } 
     catch (error) 
     { 
      alert(error); 
     } 
    } 
    function dumpDistro(distro) 
    { 
     for (var i = 0; i < distros.length; i++) 
     { 
      if (distros[i] == distro) 
      { 
       distros.splice(i,1); 
      } 
     } 
    } 
</script> 

var stop = false;所以讓我們記住這一點。

if ((stop == false) && (document.getElementById('q1a').value == '')) 
      { 
       alert('Geen antwoord opgegeven bij vraag 1a!'); 
       stop = true; 
      } 

輸入有內容時不觸發。

if ((stop == false) && (document.getElementById('q1b').value == '')) 
      { 
       alert('Geen antwoord opgegeven bij vraag 1b!'); 
       stop = true; 
      } 

輸入含有內容時不觸發。

if ((stop == false) && (q2a == '')) 
      { 
       alert('Geen antwoord opgegeven bij vraag 2a!'); 
       stop = true; 
      } 

輸入含有內容時不觸發。

if ((stop == false) && (q2b == '')) 
      { 
       alert('Geen antwoord opgegeven bij vraag 2b!'); 
       stop = true; 
      } 

當輸入具有內容...等等不火......

你可以發佈你認爲即使沒有值爲空啓動時機的特定警報?

+0

感謝您的提示,但這不是問題:p問題是,它也沒有顯示在zoekDistro()函數結束警報。 – RobinJ

+0

@RobinJ錯誤沒有發生,因爲你的代碼沒有問題,調用完成,沒有內置的錯誤觸發處理,所以你的try catch成功。如果失敗,則不會觸發錯誤。我的代碼明確地解決了在你現在的函數中沒有警報出現的問題。 –

+0

我很確定,要麼你理解錯誤的問題,要麼我明白你的回答錯誤......無論如何,我做了你告訴我的,沒有任何效果。如果一切都填滿了,並且點擊提交按鈕,則什麼都不會發生。順便說一下,我想默認選擇第一個答案。檢查我在javascript代碼中是空的,以防萬一我改變了我的想法。 – RobinJ

0

快速查看代碼,我可以看到一個提交按鈕,它帶有一個看起來正在工作的onclick處理程序。

但是沒有圍繞字段和提交按鈕的FORM標籤,所以瀏覽器不知道要提交什麼和在哪裏。

+0

正如我所想,這沒有什麼區別,因爲我只是使用按鈕的onClick事件。 – RobinJ