Javascript空输入错误
我有这个输入字段Javascript空输入错误,javascript,html,validation,Javascript,Html,Validation,我有这个输入字段 html +='<p style="font-size: 18px; ">Total Bids: <input type="text" class="total_bids" name="total_bids" placeholder="No. of Bids" required></p>'; 如果用户输入一个数字,它工作正常,但如果用户没有输入任何内容并按下激活按钮,则会出现此错误 TypeError:无法读取null的属性“style
html +='<p style="font-size: 18px; ">Total Bids: <input type="text" class="total_bids" name="total_bids" placeholder="No. of Bids" required></p>';
如果用户输入一个数字,它工作正常,但如果用户没有输入任何内容并按下激活按钮,则会出现此错误
TypeError:无法读取null的属性“style” 我想限制用户输入一些东西,我已经在输入字段中申请了required,但这不起作用,(我不知道为什么)我可以限制用户输入一些东西的任何其他检查 编辑: 我在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');
},
因为你做得不对。实际上,您使用超链接将表单发布到服务器端
html += '<a style="cursor:pointer;" onclick="'+onclick_url_bid_o_matic+'" class="btn-bidoo" id="btn-bidoo">Activate</a>';
html+=“激活”;
这是提交表格的错误方式。将其替换为实际的输入提交按钮。然后它将验证您的文本字段
html += '<input type="submit" class="btn-bidoo" id="btn-bidoo" value="Activate" />';
html+='';
并在表单标签上设置onclick\u url\u bid\u o\u maticurl
html += '<form action="' + onclick_url_bid_o_matic + '" method="post">'
html+=''
或者,如果您仍然希望使用超链接标记,则在Javascript/Jquery的帮助下提交表单
这就是为什么在请求的URL中会出现NULL,因为
total\u bids
是输入的类,而不是id
。您没有任何名为totalbids
的id
。当你试图找到一个id为id
的对象,比如totalbids
时,你没有找到任何东西。要解决它,请像这样更改您的输入
或使用
document.getElementsByName('total_bids')[0]。style.visibility='hidden'
您不能在提供的代码中的任何地方读/写style
属性。我认为错误在另一个地方。因为在你的代码中,你没有访问Style
attribute我没有,我只是得到用户通过GetElementsByName输入的值你可以发布函数的代码吗onclick\u url\u bid\u o\u matic
@wonderbell刚刚调用了函数中的代码。你的答案没有意识到他提出的问题,而是在Javascript的帮助下生成HTML代码。然后尝试通过单击超链接标记发布表单。这是无效的。这就是HTML5验证不起作用的原因。@ShailendraSharma我认为这是正确的答案。OP正试图通过错误行中的'id'访问元素。请参见已编辑的问题<代码>document.getElementById(“totalbids”).style.visibility='hidden'代码>其他地方,按名称访问。在投反对票之前请稍等片刻@法赞,请试试这个答案。是的,我的错。我没有提供id。@wonderbell document.getElementById(“totalbids”).style.visibility='hidden';在成功块中编写,如问题“如果用户输入一个数字,它工作正常”中所述,您能解释一下吗?@ShailendraSharma是的,它工作正常,它会根据需要将数字发送到php代码,此文档。getElementById(“totalbids”).style.visibility=‘hidden’;是为了隐藏这个输入字段,与工作无关,顺便说一句,它没有隐藏这个输入字段,在我的情况下,问题是我没有提到Id。“TypeError:无法读取属性'style'的null”应该存在于作品中,很好的情况下,使很多场景
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" />';
html += '<form action="' + onclick_url_bid_o_matic + '" method="post">'