蛋糕PHP通过javascript更改隐藏表单项的值

时间:2015-06-03 10:09:02

标签: javascript php cakephp

我在视图中有以下蛋糕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;

2 个答案:

答案 0 :(得分:2)

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

我猜你试图在特定的动作上更改/分配值到隐藏字段。 我只是假设一个点击事件。

需要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); */
})

答案 1 :(得分:1)

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