Javascript null输入错误

时间:2015-11-17 07:15:26

标签: javascript html5 validation

我有这个输入字段

  html +='<p style="font-size: 18px; ">Total Bids: <input type="text" class="total_bids" name="total_bids" placeholder="No. of Bids" required></p>';

和按钮

html += '<a style="cursor:pointer;" onclick="'+onclick_url_bid_o_matic+'" class="btn-bidoo" id="btn-bidoo">Activate</a>';

我通过

获得输入字段的值
var totalbids = document.getElementsByName('total_bids')[0].value;

如果用户输入数字,它可以正常工作,但如果用户没有输入任何内容并按下激活按钮,则会出现此错误,

  

TypeError:无法读取null

的属性'style'

我想限制用户输入一些内容,我已经在输入字段中应用了所需的但是没有用,(我不知道为什么)我可以限制用户输入内容的任何其他检查?

编辑:

我在php中得到了这个值,我也在那里应用了一个检查,

 $total_bids = PSF::requestGetPOST('totalbids');

if(!$total_bids)
        {
            return json_encode(array('error' => 'enter a number'));
        }

但直到此处才会到达,因为它以空值错误停止

按钮指向此功能

bid_o_matic:function(id, uid, e, evt){

            var totalbids = document.getElementsByName('total_bids')[0].value;
            var bidval = document.getElementsByName('bidvalue')[0].value;


            parent_element = $(e).parent().parent();


            if(typeof(evt) != 'undefined'){
                evt.preventDefault();
                evt.stopPropagation();
            }
            if(e.attr('disabled') == 'disabled'){
                return;
            }
            e.button('loading');
            $.post('index.php', {
                page:'__request',
                module:'PSF_auctions',
                action:'make_bid_o_matic',
                id:id,
                uid:uid,
                totalbids: totalbids,
                bidval: bidval
            }, function(d){
                e.button('reset');
                document.getElementById("btn-bidoo").style.visibility = 'hidden';
                document.getElementById("btn-deactivate").style.visibility = 'visible';
                document.getElementById("totalbids").style.visibility = 'hidden';
                document.getElementById("bidvalue").style.visibility = 'hidden';

                if(d.error){
                //        document.getElementById("totalbids").style.visibility = 'visible';
                // document.getElementById("bidvalue").style.visibility = 'visible';
                     $.auctions.alert(d.error);
                    document.getElementById("btn-bidoo").style.visibility = 'visible';
                    document.getElementById("btn-deactivate").style.visibility = 'hidden';

                }
                else
                {
              $(current_price_element).html('<p style="color:#f47321; font-size:16px; font-weight:bold;">Current Price</p><a href="#">'+d.bid_value+'</a>')

                }

            }, 'json');
        },

并且此行发生错误

 document.getElementById("totalbids").style.visibility = 'hidden';

2 个答案:

答案 0 :(得分:1)

这是因为.btn-no是您输入的btn-warning而不是total_bids。您没有class名为id的{​​{1}}。当您尝试查找id totalbids之类的对象时,您发现没有。{要解决它,请改变你的输入。

id

或使用

totalbids

答案 1 :(得分:-1)

因为你做错了。您实际上是使用HYPERLINK

将表单发布到服务器端
html += '<a style="cursor:pointer;" onclick="'+onclick_url_bid_o_matic+'" class="btn-bidoo" id="btn-bidoo">Activate</a>';

这是提交表单的错误方法。将其替换为您的实际输入提交按钮。然后它将验证您的文本字段

    html += '<input type="submit" class="btn-bidoo" id="btn-bidoo" value="Activate" />';

并在表单标记上设置 onclick_url_bid_o_matic 网址

html += '<form action="' + onclick_url_bid_o_matic + '" method="post">'

或者如果您仍想使用超链接标记,请在Javascript / Jquery的帮助下提交表单

这就是您在请求的URL中获取NULL的原因