输入类型文本问题,

时间:2012-12-17 06:01:29

标签: jquery html5

我正在编写一个jquery函数来检查用户输入是否包含字母而不是数字。我只是想让基本功能正常工作,我正在使用一个警告框来测试它。无论输入什么,测试都应显示警报。它在输入数字时起作用,但输入的任何其他字符都不会触发警报。有什么想法在这里发生了什么?

表单被分成div中包含的字段集,弹出为叠加层。只要用户试图关闭弹出窗口,就会调用该函数。这不应该导致问题吗?

这是测试功能:

function validateItem(item){
var fvalue = $(item).val();
alert(fvalue);
return false;  }

这是一个示例表项

<tr>
<td class="td_thumbs">
    <div>
        <a class="fancybox" data-fancybox-group="vinyl-banners" href="img/products/vinyl-corporateblue.jpg"> <img src="img/products/thumbs/vinyl-corporateblue-thumb.png" alt="vinyl c-blue"/></a>
        <label>Corporate Blue</label>
    </div>
</td>
<td>6</td>
<td>
    <input id="vinyl-blue" type="text" max="6" min="0" value="0"/>
</td>
</tr>

调用函数

//iterate through each table
    $('table').each(function() {

        $thisTable = $(this);

        //iterate through each input
        $(this).find('input').each(function() {
            var $this = $(this), i_value = $this.attr('value'),
                itemLabel = $this.closest('tr').find('label').html();
            //if any items have a positive value
            if (i_value > 0) {
                //we want to grab the heading for these items
                setHeading = true;

                //validate item
                if(validateItem($this)){//if quantities are valid
                  //build list of items of this type
                 $this.css({
                      'border':'1px solid #ddd',
                      'background-color' : '#efefef'
                      });
                      items += '<li>' + i_value + 'x ' + itemLabel + '</li>';
                }
                else{//invalid quantity
                  $this.css({
                      'border':'1px dashed #F00',
                      'background-color' : '#f7d2d4'
                      });

                      errorFlag = true;
                      //exit item and table loops    
                      return false;                  
                }//end validate                

            }//end value check
        });//end input iteration

2 个答案:

答案 0 :(得分:0)

这是一个函数,您可以在其中获取输入框的内容,无论是数字还是字母,Check Here

但是如果您不希望用户输入任何号码,您可以使用onkeypress事件

如下Check here

onkeypress

答案 1 :(得分:0)

发现问题!该函数在以下内容中调用..

if (i_value > 0) {

这意味着它仅在输入数字时被调用。我将调用置于此if语句之外,并且它按预期工作,因此解决方案是更改

if(i_value > 0)

if(i_value != 0)