2015-09-03 54 views
0

我有這種HTML表單,它在輸入框中顯示了一些不切實際的數字。順便說一下,我在輸入框中獲得的數據來自數據庫。我想在輸入框中顯示一個「NA」而不是99999999.9999的值。我不知道是否有一條if語句可以幫助我解決這個問題。如何在HTML表單中的輸入框中顯示不同的值

<form id="new-inventory-item-form" action="#" formaction="process" data-ajax="false"> 
     <h3> Assets</h3> 

    <div class="ui-block-a"> 
     <label for="longitude">Longitude</label> 
     <input type="number" name="" id="longitude" value="9999999.99999999"> 
    </div> 
    <div class="ui-block-b"> 
     <label for="size">Latitude</label> 
     <input type="text" name="" id="latitude" value="9999999.99999999"> 
    </div> 
</form> 
+0

在什麼時候,你考慮的值是「不現實的」? –

+0

你好,我想幫忙,但我不明白你需要什麼...你能更具體嗎? –

+0

如果這是始終從數據庫中返回的數字,只需對其進行測試,如果爲true,則將其替換爲「N/A」。 – AlexGM

回答

1

通過看你的情況下,看來你需要從數據庫驗證緯度和經度,也可以從用戶輸入和顯示「NA」如果他們不符合資格。對你來說最好的事情是驗證通過正則表達式的值在你的js,這樣的事情:

$("#btn").click(function() 
{ 
    $('.lat').each(function() 
    {  
      if (!IsMatch('^-?([1-8]?[0-9]\.{1}\d{1,6}$|90\.{1}0{1,6}$)',$(this).val())) {   
      $(this).val("NA"); 
     } 
    }); 

    $('.long').each(function() 
    { 
      if (!IsMatch('^-?([1-8]?[0-9]\.{1}\d{1,6}$|90\.{1}0{1,6}$)',$(this).val())) {   
      $(this).val("NA"); 
     } 
    }); 

}); 

function IsMatch(exp, value) { 
    var exp = new RegExp(exp); return exp.test(value); 
} 

Lat : <input class="lat" type="text"/> 
Long : <input class="long" type="text"/> 
<button id="btn">Validate</button> 

爵士小提琴:http://jsfiddle.net/u4hghL9c/2/

+0

感謝您的回答。但是,我在想,如果數字總是9999999.999999,那麼使用正則表達式的目的是什麼,所以我可以使用,如果正確的話?所以我做了一個更簡單的jsfiddler。我只是想驗證,如果val = 90那麼它會輸出NA,所以我修改了jsfiddle到這個:http://jsfiddle.net/u4hghL9c/3/但是當我點擊驗證它不會改變它不是NA – VaTo

+1

修復你的小提琴:http://jsfiddle.net/u4hghL9c/4/。但請注意,這可能只是您檢查特定值的一個實例。在某個時間點,您需要依賴正則表達式來顯示正確的值。 – DinoMyte

+0

太棒了!這就是我想要的。我理解這個正則表達式,當然在這種情況下它是一件好事,但在這種情況下,我正在尋找一個特定的值。感謝您的幫助! – VaTo

0

據我瞭解你想改變屬性value

​​

這裏是你如何設置它。 用於獲取屬性的同一作品 - https://developer.mozilla.org/en/docs/Web/API/Element/getAttribute

if (parseFloat(node.getAttribute('value')) === 999999.9999) { node.setAttribute('value', 'N/A'); }

+0

if node.value等於'99999.99999',node.value ='NA'否則爲真值。那就是我想要的 – VaTo

+0

查看編輯答案。你想要不同的東西嗎? – aprok

+0

http://jsfiddle.net/nedxkpw3/1/所以我只需要指定節點? – VaTo

相關問題