Cake PHP 将隐藏表单项的值更改为 javascript

Cake PHP change value of hidden form item by javascript

我有下面的蛋糕 php 表格:

<?php $form_id = 'message_form ' + $profile_id ?>

    <?php echo $this->Form->create('Post', array('id' => $form_id, 'url' => array('app' => true, 'controller' => 'messages', 'action' => 'new', $profile_id))); ?>

     <?php echo $this->Form->input('text', array('type' => 'textarea', 'class' => 'form-control', 'label' => false,  'data-validate' => 'not-empty', 'name' => 'data[Message][content]', 'placeholder' => 'Reply...')); ?>

     <?php echo $this->Form->input('hidden', array('type' => 'hidden', 'class' => 'form-control', 'label' => false,  'name' => 'data[Message][parent_id]', 'value' => 1)); ?>

      <div class="message-reply-options">
          <a href="#"><i class="fa fa-camera"></i></a>
          <a href="#"><i class="fa fa-paperclip"></i></a>&nbsp;
          <a href="#" class="empty-textarea"><i class="fa fa-trash"></i></a>&nbsp;
          <span class="pull-right">
               <?php echo $this->Form->submit('Send', array('class' => 'form-control')); ?>
          </span>
      </div>
<?php echo $this->Form->end(); ?>

这很好用,但是我需要能够通过 javascript 更改隐藏字段的值,具体取决于用户在页面上其他地方所做的事情。

下面是我当前使用的 javascript,但它不会更改值(但也不会出错)。

var newestmessage = response.ChildMessage[response.ChildMessage.length-1];
var parentid =  newestmessage.parent_message_id;
document.getElementsByName('data[Message][parent_id]').value = $parentid;

您可以尝试jquery和ajax功能来检查隐藏输入框的值。

这可能是一条评论,但由于我没有足够的声誉...

我猜您正在尝试 change/assign 特定操作的隐藏字段的值。 我只是假设一个点击事件。

Jquery 需要

$('.classNameOfClickableObjt').clilck(function(){
   $('input[name="data[Message][parent_id]"]').val(parentid);
   /*Another alternative, you might assign attribute, like 
      $('input[name="data[Message][parent_id]"]').attr('value', parentid); */
})