无法访问Jquery中的hidden字段的值

时间:2019-05-15 06:47:07

标签: javascript

我试图在单击列表项时设置隐藏字段的值。但是该值未设置

这是我的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变量访问值时,我得到未定义的索引错误

3 个答案:

答案 0 :(得分:2)

将此<input type=""hidden name="cpnoselected" value="asd">更改为<input type="hidden" name="cpnoselected" value="asd">,然后在您的JavaScript中

var hiddenValue = $(this).val();

如@tony所说

答案 1 :(得分:1)

  1. 尽管<input hidden>可以工作<input type='' hidden>毫无意义。最常见的方法是<input type='hidden'>

  2. <li>没有value属性,它仅适用于表单控件(例如输入,输出,文本区域,选择等)。请改用data-*属性。

  3. 使用<input>方法从.val()访问值。

  4. 使用<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);