2011-11-08 41 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