我试图在单击列表项时设置隐藏字段的值。但是该值未设置
这是我的PHP / HTML代码:
<div class = "input-group-btn">
<input type=""hidden name="cpnoselected" value="asd">
<button type = "button" class = " form-control btn btn-primary dropdown-toggle dropdown-toggle" data-toggle = "dropdown"> CP No. <span class = "caret"></span> </button>
<ul class = "dropdown-menu selectcpno" name="selectcpno">
<?php
$link_address="#";
$class_active="active";
while($row= mysqli_fetch_assoc($result_rows_cpdetailsfordd))
{
if($result_rows_cpdetails[0]==$row['cp_no']){
echo "<li value='".$row['cp_no']. "'class='".$class_active."'><a href='".$link_address."'>" . $row['cp_no'] ."</a></li>";
}
else{
echo "<li value='".$row['cp_no']."'><a href='".$link_address."'>" . $row['cp_no'] ."</a></li>";
}
}
?>
<li class = "divider"></li>
<?php
$class_active="active";
$link_address="#";
if($result_rows_cpdetails[0]==""){
echo "<li value='".$row['cp_no']. "'class='".$class_active."'><a href = '".$link_address."'>Package Level</a></li>";
}
else{
echo "<li value='".$row['cp_no']."' ><a href = '".$link_address."'>Package Level</a></li>";
}
?>
</ul>
</div><!-- /btn-group -->
</div>
这是Javascript函数L
$('.selectcpno li').click(function(){
//Get the value
var value = $(this).attr("value");
//Put the retrieved value into the hidden input
$('input[name=cpnoselected]').val(value);
});
通过$ _POST变量访问值时,我得到未定义的索引错误
答案 0 :(得分:2)
将此<input type=""hidden name="cpnoselected" value="asd">
更改为<input type="hidden" name="cpnoselected" value="asd">
,然后在您的JavaScript中
var hiddenValue = $(this).val();
如@tony所说
答案 1 :(得分:1)
尽管<input hidden>
可以工作<input type='' hidden>
毫无意义。最常见的方法是<input type='hidden'>
<li>
没有value
属性,它仅适用于表单控件(例如输入,输出,文本区域,选择等)。请改用data-*
属性。
使用<input>
方法从.val()
访问值。
使用<li data-*>
方法从.data(*)
访问值。
$('.selectcpno li').click(function() {
var value = $(this).data("value");
$('input[name=cpnoselected]').val(value);
console.log($('input[name=cpnoselected]').val());
});
<input type="hidden" name="cpnoselected" value="asd">
<ul class="dropdown-menu selectcpno" name="selectcpno">
<li data-value='A'>
<a href='#/'>A</a>
</li>
<li data-value='B'>
<a href='#/'>B</a>
</li>
<li data-value='C'>
<a href='#/'>C</a>
</li>
<li data-value='D'>
<a href='#/'>D</a>
</li>
</ul>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
答案 2 :(得分:0)
您应该使用val()而不是text()
var hiddenValue = $(this).val();
console.log(hv);