3 回答
TA贡献1780条经验 获得超1个赞
这将修复它的变化:该函数现在是一个函数,它使用 onclick() 而不是 href 运行,要获取按钮的值属性,我们需要使用 getAttribute,最后保留下划线和紫色(因为我们删除了href)我们需要添加:style="text-decoration: underline; color: purple;"
<label>
<input type="text" id="searchString" name="searchString" maxlength="20">
</label>
<section id="searchMode" style="margin-top: 3px; margin-bottom: 2px">
<input type="radio" id="Title" name="searchMode" value="Title"/>
<label for="Title">Title</label>
<input type="radio" id="Author" name="searchMode" value="Author"/>
<label for="Author">Author</label>
<input type="radio" id="Number" name="searchMode" value="Number"/>
<label for="Number">Number</label>
</section>
<script>
function search(){
console.log('here')
let s = document.getElementById("searchString").value;
let opt = document.querySelector('input[name="searchMode"]:checked')
if(opt){
opt = opt.getAttribute('value');
}
console.log(opt)
console.log(s)
}
</script>
<section style="margin-top: 3px;">
<a onclick='window.search()' style="text-decoration: underline; color: purple;">
<img alt="search" id="searchImage" src="images/search.png" width="22" height="22">
</a>
</section>
TA贡献1793条经验 获得超6个赞
s并且opt未在您的锚点范围内定义。它们似乎在别处定义。考虑将其更改为以下内容:
<a onclick="search"><img ...></a>
然后,在您的搜索中
<script>
s = document.getElementById("searchString").value;
opt = document.querySelector('input[name="searchMode"]:checked').value;
search(s,opt);
</script>
TA贡献1848条经验 获得超6个赞
你searchString没有任何价值,所以当你试图访问它的价值时,它会给你错误。因此,为此您需要为其分配一个值。例如
<label for="searchString">
<input type="text" id="searchString" name="searchString" maxlength="20"
value
= "search" > </br>
</label>
完全一样当你没有检查任何选项时radio-button它会给出错误,因为在那个特定的时间它不会有任何价值。
因此,您必须为各个元素分配值。
添加回答
举报