2012-12-04 37 views
1

我想創建一個表單,如果傳遞一個值爲「0」,則會引發錯誤。我很難過,可以真正使用一些幫助。這個腳本有兩個功能。首先是工作,我可以根據選擇更改網址。在我遇到問題的地方,我希望選擇「 - 」和「選擇狀態」來觸發第二個腳本,理論上它會突出顯示該字段並且不允許用戶點擊。這就是所謂的「validateEmpty」功能JavaScript Dropdown表單驗證:拋出錯誤,當值「0」通過

我到一個不同的方法完全開放,這是一個教程,我發現一個黑客後續版本,要經過0.1

一個value.length樣本頁面在這裏: http://www.brimbar.com/no_crawl/js-test-homepage.html

OR

的代碼如下:

<code> 
    <div id="quoteDropdowns"> 
    <select id="stateType" name="stateType" onchange="dosomething()"> 
    <option value="select" selected="selected">Choose State</option> 
    <option value="IL">Illinois</option> 
    <option value="MD">Maryland</option> 
    <option value="TX">Texas</option> 
    <option value="VA">Virginia</option> 
    <option value="--">--</option> 
    <option value="other">Other</option> 
    </select> 
    </div> 
    <div id="getAQuote"> <a id="mylink" class="myButton" href="#" onclick="validateEmpty">Get a Quote!</a> </div> 
    <script type="text/javascript"> 
function dosomething() { 
    var inputSelector = document.getElementById("stateType"); 
    var link = document.getElementById("mylink"); 


    if (inputSelector.value == "VA") { 
     link.href = "http://www.test1.com"; 
    } 
    else if (inputSelector.value == "MD") { 
     link.href = "http://www.test2.com"; 
    } 
    else if (inputSelector.value == "IL") { 
     link.href = "http://www.test3.com"; 
    } 
    else if (inputSelector.value == "TX") { 
     link.href = "http://www.test4.com"; 
    } 
    else if (inputSelector.value == "other") { 
     link.href = "http://www.test5.com"; 
    } 
      else if (inputSelector.value == "--") { 
     stateType.value.length == 0; 
     link.href = "#"; 
    } 


    } 

    console.log('First Function is Valid'); 

    function validateEmpty(stateType) { 

    var error = value.length==0; 

    if (stateType.value.length == 0) { 
     stateType.style.border = 'red'; 
     error = "The required field has not been filled in.\n" 
    } else { 
     stateType.style.background = 'White'; 
    } 
    return error; 

} 
console.log('Second Function is Valid'); 

</script></code> 
+2

請將您的代碼發佈在問題或jsfiddle – Eva

+0

是的,請不要讓人們對您的頁面進行逆向工程。 –

+0

嗨埃文和Diodeus - 我沒有試圖逃脫一個快速的,我有問題格式化我的代碼爲StackOverflow,所以我把它扔在我的測試服務器上。我不知道這是一個失禮。謝謝! – JaggsWaggert

回答

2

1)好了,你有減速想要使用內聯javascript的老式黑暗方法;)而不是使用事件監聽器,但爲什麼每次選項更改時都要設置鏈接元素的href?這不是最佳的。當鏈接被點擊時(按需),我寧願重定向。這使您只有一個功能。

2)而不是使用if..else嘗試使用switch..case構造它會稍微緩解一些事情。而且它看起來更具可讀性,但也許更偏向於偏好。

3)爲什麼你想使用這種扭曲的邏輯進行驗證?你已經有了你的選擇元素的值是' - '。使用它或你也可以在switch case(見jsFiddle example)的默認部分處理它,這也處理「選擇狀態」選項。當你點擊鏈接並選擇了「錯誤」選項時,你會得到一個警告而不是重定向。

這是我的jsFiddle示例:example

+0

謝謝!這很棒。我是編程新手,所以我錯誤地學習和善待別人。 – JaggsWaggert