我正在構建一個網頁,您必須從列表中選擇一個輸入,然後點擊一個按鈕,然後根據該選擇創建一個新頁面。如果沒有選擇列表中的任何內容並按下此按鈕,我希望提醒用戶在繼續之前必須從列表中選擇。在條件改變後仍然顯示Javascript警告
所以我最初的HTML有一個空白的href:<a id="Button" href="">Start</a>
然後我列表選擇後,通過JS添加此HREF:
choice.mousedown(function(){
if (this.data('fullname')=='X'){
document.getElementById('Button').href = '/newpageX';}}
這一切工作正常,並根據需要精確地添加HREF的按鈕。當我下次嘗試在href仍然是emtpy時添加警報時,問題就出現了。因此,經過上面的js代碼,以提醒用戶,如果這HREF仍是空白(即沒有從列表中選擇),他們按下按鈕,我添加了一個檢查的過程如下(使用jQuery):
document.getElementById('Button').onclick = function() {
if ($('Button').attr('href') === undefined) {
alert('Please select an option from list above');}}
如果沒有選擇任何內容,這似乎工作正常,但如果用戶確實從列表中選擇了某項內容,則此警報仍然會顯示,然後才能根據列表選擇(newpageX)正確進行到新頁面!這是我的主要問題。因此,好像href(defined/undefined)的條件在href通過列表選項定義之後不會通過jquery if語句重新檢查 - 並且因爲這個警告仍然顯示。我究竟做錯了什麼?我怎樣才能防止顯示警報,如果實際上現在基於列表選擇定義了href?這裏有更好的整體策略嗎?
此外,單獨 - 當href實際上是空的並且按下按鈕時,在警告中點擊'ok'後,頁面將被重新加載。我不相信這是必要的 - 我怎麼纔能有警報顯示,但不能重新加載頁面?我試圖添加'return false;'在if語句之後,但是當進行列表選擇時,它不會進入新頁面。
預先感謝所有幫助傢伙...
一個好的開始是決定使用'jQuery'還是'Vanilla Javascript'。沒有理由混淆兩者。 – melancia
'$('#Button')' – adeneo
'$('Button')'是你問題的一部分 - 你想'$('#Button')' – Pointy