由代码识别创建的项目
页面和响应
表单代码
<?php
$form_option = array('id' => $project->baslik ,'class' => 'form-horizontal');
echo form_open('ProjectStudent/add_project_student', $form_option); ?>
<input id="project_id" type="text" name="project_id" value="<?php echo $project->id; ?>" disabled="disabled"/>
<div align="right" class="col-md-12">
<select id="lesson_id" name="lesson_id">
<option value="secim1_id">Seçim 1</option>
<option value="secim2_id">Seçim 2</option>
<option value="secim3_id">Seçim 3</option>
</select>
<button id="DersSec" type="button" class="btn btn-sm green">Ekle</button>
</div>
</form>
和jQuery代码
$(document).ready(function() {
$("button[type=button]").click(function(e){
var project_id = $(this).parent().find('input[name="project_id"]').val();
var lesson_id = $(this).parent().find('select[name="lesson_id"]').val();
var data = $(this).parent().serialize();
alert(data);
alert(project_id);
alert(lesson_id);
});
});
lesson_id返回一个真实的数据,但project_id和数据不工作
project_id字段不在按钮的父字段中,因此当您执行时
var project_id = $(this).parent().find('input[name="project_id"]').val();
您实际上说:转到<div align="right" class="col-md-12">
(父级(,然后在其中查找名称为project_id
的输入字段。
您只需要在div中移动字段,或者使用上级父级访问它,如下所示:
var project_id = $(this).parents().eq(1).find('input[name="project_id"]').val();
如果查看文档的html结构,您会发现按钮的父级是<div>
,而不是<form>
。这就是为什么project_id
和data
是空的;find()
一无所获。
你可以使用类似的东西:
$("button[type=button]").click(function(e){
var form = $(this).closest('form'),
project_id = form.find('input[name="project_id"]').val(),
lesson_id = form.find('select[name="lesson_id"]').val(),
data = form.serialize();
...
});
最快的修改是将.parent()
更改为.parents('form')