由Codeİgniter创建的项目
页面和回复
表格代码
<?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和数据无法正常工作
答案 0 :(得分:0)
如果查看文档的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();
...
});
答案 1 :(得分:0)
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();
答案 2 :(得分:0)
最快修改(并开始工作)是将.parent()
更改为.parents('form')