我的表单中有一个提交按钮:
<?php echo $this->Form->end(__('Submit')); ?>
我希望嵌入作为输入表单一部分的变量。
例如,我想嵌入一个在此输入$this->Form->input('user_id');
的变量。
有谁知道怎么做?我目前将这个onsubmit
作为options数组的一部分,但是当我尝试嵌入变量时会抛出错误。
<?php echo $this->Form->create('Shift', array(
'onsubmit' => 'return confirm("Creating shift for '$id' on ");'
)); ?>
现在正在编辑此问题。所以Javascript解决方案运行良好。现在的问题是我希望警告框显示用户的名字,这是显示在保管箱中的名称。但是,HTML标记包含用户的ID。这是HTML
<div class="input select required">
<label for="my_user_id">User</label>
<select name="data[Shift][user_id]" id="my_user_id" required="required">
<option value="1">john doe</option>
<option value="2">john johnson</option>
有没有办法使用Javascript访问<option>
代码之间的值?
答案 0 :(得分:4)
您需要使用双引号:
<?php
echo $this->Form->create('Shift', array(
'onsubmit' => "return confirm(\"Creating shift for '$id' on \");"
));
?>
另一种选择是使用$this->Form->postLink()并设置$ confirmMessage参数,如果它是一个简单的状态转换形式。
答案 1 :(得分:2)
您可以使用JQuery
echo $this->Form->create('Shift', array('id' => 'myform'));
echo $this->Form->input('user_id', array('id' => 'my_user_id', 'type'=>'text'));
表格后:
<?php echo $this->Html->scriptBlock('
$(document).ready(function() {
$("#myform").submit(function(event) {
alert("Creating shift for " + $("#my_user_id").val());
});
});
');
?>