name值不能相同,结果单选框全选中。

bh6635 2015-03-28 11:09:39
源码搜集自网路,精心改编。

新人,暂时还不会javascript语言,请教如何完善这个网页的单选框?就是只能选一个。

<html>

<head>

<meta http-equiv="content-Type" content="text/html;charset=gb2312">
<meta name="keywords" content="此处填写通过搜索引擎找到本页的关键词" />
<meta name="description" content="www.zzjs.net,本页自述" />
<title>集成搜索引擎</title>

</head>




<body>

呕心沥血之作,集成搜索引擎。
<hr />



<script>

function CheckAll(form){
for (var i=0;i<form.elements.length;i++){
var e = form.elements[i];
if (e.name != 'chkall')
e.checked = form.chkall.checked;
}
}

function netsearch(formname){
var baidu1
var baidu2
var Sogou1
var Sogou2
var Haosou1
var Haosou2

TEXT=formname.TEXT.value;
noEngine=true;
haveTEXT=true;
if (TEXT==""){
alert("请输入搜索内容")
haveTEXT=false
}


baidu1=formname.baidu.checked;
baidu2="http://www.baidu.com/s?word="+TEXT;
if (baidu1){
noEngine=false
if (haveTEXT){
newWindow=window.open(baidu2, "baidu","toolbar,location,directories,status,menubar,scrollbars,resizable=1")
}
}
Sogou1=formname.Sogou.checked;
Sogou2="http://www.sogou.com/sogou?query="+TEXT;
if (Sogou1){
noEngine=false
if (haveTEXT){
newWindow=window.open(Sogou2, "Sogou","toolbar,location,directories,status,menubar,scrollbars,resizable=1")
}
}
Haosou1=formname.Haosou.checked;
Haosou2="http://www.haosou.com/s?&q="+TEXT;
if (Haosou1){
noEngine=false
if (haveTEXT){
newWindow=window.open(Haosou2, "Haosou","toolbar,location,directories,status,menubar,scrollbars,resizable=1")
}
}




if (noEngine){
alert("请选择搜索引擎")
}
}
</script>


<form name=engines onSubmit=netsearch(engines)> <!--±íµ¥-->
<input name=TEXT size=10 maxlength=200 value="输入关键词">
<input type=button value="提交搜索" name=Submit onClick=netsearch(engines)>
<br />


<input type="radio" name=baidu value="radiobutton" checked>Baidu
<input type="radio" name=Sogou value="radiobutton" >Sogou
<input type="radio" name=Haosou value="radiobutton">Haosou


</form>

</body>
</html>
...全文
349 6 打赏 收藏 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bh6635 2015-03-28
  • 打赏
  • 举报
回复
引用 1 楼 fengyun817 的回复:
要达到什么效果?name不同的话可以全选中的。
效果:选择搜索引擎的时候只能选中一个,不能同时选择多个。 应该有办法吧,现在那段javascript代码有些地方能看懂有些地方还看不懂,大概就是在我看不懂的地方改改了。。。 谢谢!
fengyun817 2015-03-28
  • 打赏
  • 举报
回复
要达到什么效果?name不同的话可以全选中的。
bh6635 2015-03-28
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
单选钮视 name 相同的为一组 所以你的应写作 <input type="radio" value=baidu name="radiobutton" checked>Baidu <input type="radio" value=Sogou name="radiobutton" >Sogou <input type="radio" value=Haosou name="radiobutton">Haosou 这样,服务端就可通过 radiobutton 项的值知道选中了什么
function CheckAll(form) { for (var i = 0; i < form.elements.length; i++) { var e = form.elements[i]; if (e.name != 'chkall') e.checked = form.chkall.checked; } } function netsearch(formname) { var baidu1 var baidu2 var Sogou1 var Sogou2 var Haosou1 var Haosou2 TEXT = formname.TEXT.value; noEngine = true; haveTEXT = true; if (TEXT == "") { alert("请输入搜索内容") haveTEXT = false } 也是无法提交。 貌似由于上面这段js代码,后面的name值不能修改吧。。。
bh6635 2015-03-28
  • 打赏
  • 举报
回复
引用 3 楼 fengyun817 的回复:
<html>
 <head> 
  <meta http-equiv="content-Type" content="text/html;charset=gb2312" /> 
  <meta name="keywords" content="此处填写通过搜索引擎找到本页的关键词" /> 
  <meta name="description" content="www.zzjs.net,本页自述" /> 
  <title>
            集成搜索引擎
        </title> 
 </head> 
 <body>
   呕心沥血之作,集成搜索引擎。 
  <hr /> 
  <script>
            function CheckAll(form) {
                for (var i = 0; i < form.elements.length; i++) {
                    var e = form.elements[i];
                    if (e.name != 'chkall') e.checked = form.chkall.checked;
                }
            }

            function netsearch(formname) {
                var baidu1
                var baidu2
                var Sogou1
                var Sogou2
                var Haosou1
                var Haosou2

                TEXT = formname.TEXT.value;
                noEngine = true;
                haveTEXT = true;
                if (TEXT == "") {
                    alert("请输入搜索内容") haveTEXT = false
                }

                baidu1 = formname.baidu.checked;
                baidu2 = "http://www.baidu.com/s?word=" + TEXT;
                if (baidu1) {
                    noEngine = false
                    if (haveTEXT) {
                        newWindow = window.open(baidu2, "baidu", "toolbar,location,directories,status,menubar,scrollbars,resizable=1")
                    }
                }
                Sogou1 = formname.Sogou.checked;
                Sogou2 = "http://www.sogou.com/sogou?query=" + TEXT;
                if (Sogou1) {
                    noEngine = false
                    if (haveTEXT) {
                        newWindow = window.open(Sogou2, "Sogou", "toolbar,location,directories,status,menubar,scrollbars,resizable=1")
                    }
                }
                Haosou1 = formname.Haosou.checked;
                Haosou2 = "http://www.haosou.com/s?&q=" + TEXT;
                if (Haosou1) {
                    noEngine = false
                    if (haveTEXT) {
                        newWindow = window.open(Haosou2, "Haosou", "toolbar,location,directories,status,menubar,scrollbars,resizable=1")
                    }
                }

                if (noEngine) {
                    alert("请选择搜索引擎")
                }
            }
            function clearOther(obj) {
                var enginenames = ["baidu", "Sogou", "Haosou"];
                for (var i = 0; i < enginenames.length; i++) {
                    //循环设置每个checkbox的状态
                    engines.elements[enginenames[i]].checked = obj.name == enginenames[i];
                }
            }
        </script> 
  <form name="engines" onsubmit="netsearch(engines)"> 
   <!--±íμ¥--> 
   <input name="TEXT" size="10" maxlength="200" value="输入关键词" /> 
   <input type="button" value="提交搜索" name="Submit" onclick="netsearch(engines)" /> 
   <br /> 
   <input type="radio" name="baidu" value="radiobutton" checked="" onclick="clearOther(this)" /> Baidu 
   <input type="radio" name="Sogou" value="radiobutton" onclick="clearOther(this)" /> Sogou 
   <input type="radio" name="Haosou" value="radiobutton" onclick="clearOther(this)" /> Haosou 
  </form>  
 </body>
</html>
你这个写的还能优化很多,等学多了就会改了。
嗯嗯,比如回车提交搜索。 可是你给的这个代码提交不了。。。
xuzuning 2015-03-28
  • 打赏
  • 举报
回复
单选钮视 name 相同的为一组 所以你的应写作 <input type="radio" value=baidu name="radiobutton" checked>Baidu <input type="radio" value=Sogou name="radiobutton" >Sogou <input type="radio" value=Haosou name="radiobutton">Haosou 这样,服务端就可通过 radiobutton 项的值知道选中了什么
fengyun817 2015-03-28
  • 打赏
  • 举报
回复
<html>
 <head> 
  <meta http-equiv="content-Type" content="text/html;charset=gb2312" /> 
  <meta name="keywords" content="此处填写通过搜索引擎找到本页的关键词" /> 
  <meta name="description" content="www.zzjs.net,本页自述" /> 
  <title>
            集成搜索引擎
        </title> 
 </head> 
 <body>
   呕心沥血之作,集成搜索引擎。 
  <hr /> 
  <script>
            function CheckAll(form) {
                for (var i = 0; i < form.elements.length; i++) {
                    var e = form.elements[i];
                    if (e.name != 'chkall') e.checked = form.chkall.checked;
                }
            }

            function netsearch(formname) {
                var baidu1
                var baidu2
                var Sogou1
                var Sogou2
                var Haosou1
                var Haosou2

                TEXT = formname.TEXT.value;
                noEngine = true;
                haveTEXT = true;
                if (TEXT == "") {
                    alert("请输入搜索内容") haveTEXT = false
                }

                baidu1 = formname.baidu.checked;
                baidu2 = "http://www.baidu.com/s?word=" + TEXT;
                if (baidu1) {
                    noEngine = false
                    if (haveTEXT) {
                        newWindow = window.open(baidu2, "baidu", "toolbar,location,directories,status,menubar,scrollbars,resizable=1")
                    }
                }
                Sogou1 = formname.Sogou.checked;
                Sogou2 = "http://www.sogou.com/sogou?query=" + TEXT;
                if (Sogou1) {
                    noEngine = false
                    if (haveTEXT) {
                        newWindow = window.open(Sogou2, "Sogou", "toolbar,location,directories,status,menubar,scrollbars,resizable=1")
                    }
                }
                Haosou1 = formname.Haosou.checked;
                Haosou2 = "http://www.haosou.com/s?&q=" + TEXT;
                if (Haosou1) {
                    noEngine = false
                    if (haveTEXT) {
                        newWindow = window.open(Haosou2, "Haosou", "toolbar,location,directories,status,menubar,scrollbars,resizable=1")
                    }
                }

                if (noEngine) {
                    alert("请选择搜索引擎")
                }
            }
            function clearOther(obj) {
                var enginenames = ["baidu", "Sogou", "Haosou"];
                for (var i = 0; i < enginenames.length; i++) {
                    //循环设置每个checkbox的状态
                    engines.elements[enginenames[i]].checked = obj.name == enginenames[i];
                }
            }
        </script> 
  <form name="engines" onsubmit="netsearch(engines)"> 
   <!--±íμ¥--> 
   <input name="TEXT" size="10" maxlength="200" value="输入关键词" /> 
   <input type="button" value="提交搜索" name="Submit" onclick="netsearch(engines)" /> 
   <br /> 
   <input type="radio" name="baidu" value="radiobutton" checked="" onclick="clearOther(this)" /> Baidu 
   <input type="radio" name="Sogou" value="radiobutton" onclick="clearOther(this)" /> Sogou 
   <input type="radio" name="Haosou" value="radiobutton" onclick="clearOther(this)" /> Haosou 
  </form>  
 </body>
</html>
你这个写的还能优化很多,等学多了就会改了。

87,984

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧