2013-02-28 64 views
0

我正在研究一個潛在客戶表單,並且有一個惱人的問題,我似乎無法控制我的頭。做出選擇後字段值更新停止

每次對某些字段進行更改時,都會更新隱藏字段以反映此更改。但是,如果您執行某些步驟,則該字段停止更新,我不知道。

JSfiddle不會在JavaScript元素中工作,所以這裏是一個測試頁面:(鏈接已移除)。

我已經隱藏了自動更新的字段,它的正下方爲textarea

重現步驟:

  • 選擇美國作爲原產地。
  • 從「您裝運什麼?」選擇任何選項。領域。
  • 從「告訴我們更多」字段中選擇「添加我自己的描述」。
  • 編輯文本區域並忽略字段以查看其下面的字段 更新其內容。
  • 現在,打開「告訴我們更多」再次下拉,這次選擇任何 汽車製造。
  • 將出現一個「模型」下拉列表,您可以從中選擇或忽略 以查看「隱藏」字段如何更新。
  • 回到「告訴我們更多」字段,並再次選擇「添加我的 自己的描述」。
  • 編輯textarea以查找隱藏字段不再更新自身。
  • 您必須再次選擇一個品牌,然後重新選擇自己的描述爲 ,強制更新其對textarea所做的任何更改。

我該如何阻止這種突破?

回答

1

你的錯誤是在這一行var strModel = model.options[model.selectedIndex].text;

它說,它不能讀取未定義的屬性text。您的代碼中某處需要定義model.selectedIndex

我在這裏看到你定義make的在onblur事件:

info.onblur=function() { 
    if (info.value=="") info.value=info.defaultValue; 
    if (info.value!=info.defaultValue) { 
     Show('quote_form_Make'); 
     BuildMakeSelect(); 
     make.selectedIndex = 2; 
    } 
} 

當我選擇一個牌子,和模型菜單上寫着‘模型’,這是結果:

document.getElementById('quote_form_Model').selectedIndex // 0 

當我選擇 「添加你自己的描述」,這是結果:

document.getElementById('quote_form_Model').selectedIndex // -1 

這應該讓你開始在你的調試冒險。

+0

謝謝AlienWebguy,今晚晚些時候我將不得不在此工作。我會盡我所能發佈我的結果! – Glancey 2013-02-28 19:34:41

+0

我確保只要模型'select'被隱藏,它也會將該元素的'selected.index'定義爲0.這似乎解決了這個問題。如果沒有你,AlienWebguy無法完成!順便說一句,你是如何發現這個錯誤的? – Glancey 2013-03-01 11:30:27

+0

IE8有開發工具(F12)。我剛剛在Script選項卡中打開了控制檯,並完成了重現問題的步驟。錯誤'無法讀取未定義的屬性'文本'告訴我,希望保持該屬性的對象沒有設置,並且由於它的變量部分是數組鍵,所以對我來說遵循這個指導是有意義的。 – AlienWebguy 2013-03-01 16:51:00