2013-06-18 47 views
-1

我試圖創建一個錯誤消息來顯示給用戶,但它似乎不工作。如果缺少用戶輸入,錯誤消息應該會獲得額外的消息,然後在一個範圍內顯示所有錯誤(紅色),每行顯示一行。創建一條錯誤消息

 $(function() { 
      $("#intButton").click(function() { 
       var errorMsg = ""; 
       $errorMsg = $(errorMsg); 
       $($errorMsg).css("color", "red"); 
       if (!$("#intMin").val()) $($errorMsg).append("<p>Enter a minimum value!</p>"); 
       if (!$("#intMax").val()) $($errorMsg).append("<p>Enter a maximum value!</p>"); 
       $("#intResult").text($($errorMsg).text()); 
      }); 
     }); 

HTML:

Min:<input type="text" id="intMin"> 
Max:<input type="text" id="intMax"> 
Result: <span id="intResult"></span> 

這都顯示沒有任何錯誤,它根本不起作用。範圍內沒有顯示任何內容。

http://jsfiddle.net/kWTkT/1/

+0

您正在創建一個jQuery元素幾次$($ ERRORMSG)。 – NicoSantangelo

+0

的用途var errorMsg =「」; $ errorMsg = $(errorMsg); – jbduzan

+0

你不在頁面的某個地方使用一些HTML代碼嗎?你應該提供一個jsfiddle –

回答

4

一個更容易的方法是簡單地創建一個CSS類error

.error { 
    color: red; 
} 

然後,只需將該類添加到p元素append

$("#intButton").click(function() { 
    var errorMsg = ""; 
    if (!$("#intMin").val()) errorMsg += "Enter a minimum value. <br />"; 
    if (!$("#intMax").val()) errorMsg += "Enter a maximum value. "; 

    //Display the error: 
    $("#intResult").html("<p class='error'>" + errorMsg + "</p>"); 
}); 
+0

如果這兩個字段都是空的,那麼第二個錯誤會不會覆蓋代碼中的第一個錯誤,而不是同時顯示兩個? – frrlod

+0

它會的,OP可以把兩個空頭都檢入,不應該太難。 – tymeJV

+0

這可能是有問題的 - 我想創建一條錯誤消息並附加到它的原因是,一次可能有多個錯誤,並且可能存在更多類型的錯誤。 – frrlod

0

檢查你是否在尋找這個

<html><head> 
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
    <script type="text/javascript" src="http://code.jquery.com/jquery-git.js"></script> 
</head> 
<body style=""> 
    Min: 
<input type="text" id="intMin"> 
<br> 
<br>Max: 
<input type="text" id="intMax"> 
<br> 
    <input type="button" value="click" id="intButton"> 
<br>Result: <span id="intResult"></span> 
<script type="text/javascript">//<![CDATA[ 

     $(function() { 
      $("#intButton").click(function() { 
       var errorMsg = ""; 
       console.log('enter'); 
       $errorMsg = $(errorMsg); 
       $($errorMsg).css("color", "red"); 
       if ($("#intMin").val()=='') $('#intResult').append("<p>Enter a minimum value!</p>"); 
       if ($("#intMax").val()=='') $('#intResult').append("<p>Enter a maximum value!</p>"); 

      }); 
     }); 
//]]> 

</script> 
</body> 
</html> 

DEMO

0

如果你想保持一個單獨的段落標記中每個錯誤信息,你可以這樣做:

CSS

.errorResults{ 
    color: red; 
} 

HTML

Min: <input type="text" id="intMin" /><br /> 
Max: <input type="text" id="intMax" /><br /> 
Result: <span id="intResult" class="errorResults" ></span><br /> 
<button id="intButton">Test</button> 

腳本

$(function() { 
    $("#intButton").click(function() { 
     var errorMsg = ""; 
     if (!$("#intMin").val()) { 
      errorMsg += "<p>Enter a minimum value!</p>"; 
     } 
     if (!$("#intMax").val()) { 
      errorMsg += "<p>Enter a maximum value!</p>"; 
     } 
     $("#intResult").html(errorMsg); 
    }); 
}); 

JSFiddle Demo