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它會給出錯誤,因為在那個特定的時間它不會有任何價值。
因此,您必須為各個元素分配值。
添加回答
舉報