我有这个输入字段
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';
答案 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的原因