2015-09-03 20 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

相关问题