我正在尝试获取某个文本框的值,但它不起作用,更多prop
函数也不起作用。我想要的是在选中复选框时启用元素,然后在警告窗口中显示文本框内的值
链接到jsfiddle - > http://jsfiddle.net/k0cfj48L/5/
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<table>
<tr>
<td class="td" bgcolor="#CCCCCC"> <input type="text" class="chkEdit" disabled /></td>
<td class="td" bgcolor="#CCCCCC"> <input type="checkbox" class="chkView" value="Edit" /></td>
<td class="td" bgcolor="#CCCCCC"> <input type="submit" class="chkUpdate" onclick="check();" disabled /></td>
</tr>
</table>
JS:
$(document).on('change','.chkView',function(){
var row = $(this).closest('tr');
if($(this).is(':checked')) {
$(row).find('.chkEdit,.chkUpdate').prop("disabled",false);
//var x = $(row).find('.chkEdit').val();
}else{
$(row).find('.chkEdit,.chkUpdate').prop("disabled",true);
}
});
/////////////////////////////////////////////////////////
function check() {
var row = $(this).closest('tr');
var x =$(row).find('.chkEdit').val();
alert(x);
return ;
}
jsfiddle被编辑,启用功能正在运行,但我仍然无法获得警报
答案 0 :(得分:0)
http://jsfiddle.net/k0cfj48L/2/
我已经修好了你的小提琴。
1)没有包含JQuery,所以&#39; $&#39; in $(document).ready()未定义。
2)我将JS改为包含在头部中,以便按照执行页面时的定义读取检查功能。
3)你的检查函数没有在事件中直接实例化,所以$(this)什么都不做,而只是一个窗口引用。我提出了正确的textarea选择,但我考虑在提交按钮上使用ID或添加jQuery事件,然后找到兄弟姐妹:
$(document).on('change','.chkView',function(){
var row = $(this).closest('tr');
if($(this).is(':checked'))
{
$(row).find('.chkEdit,.chkUpdate').prop("disabled",false);
//var x = $(row).find('.chkEdit').val();
}
else
{
$(row).find('.chkEdit,.chkUpdate').prop("disabled",true);
}
});
/////////////////////////////////////////////////////////
function check()
{
var x = $('.chkEdit').val();
alert(x);
return ;
}
答案 1 :(得分:0)
<强> jsFiddle demo 强>
HTML中的将this
引用作为fn参数传递!
onclick="check(this);"
免责声明:我不打算使用内联JS - 请继续阅读!
比jQuery:
$(document).on('change','.chkView', function(){
$(this).closest('tr').find('.chkEdit, .chkUpdate').prop("disabled", !this.checked);
});
/////////////////////////////////////////////////////////
function check(el){ // `el` is the `this` element argument you've passed in HTML
var x = $(el).closest('tr').find('.chkEdit').val();
return alert( x );
}
而不是使用lnline JS(内部HTML),这使得程序员的生活变得非常困难 在JS中做到这一切!的 jsFiddle demo 强>
$('.chkUpdate').on("click", function(e){
e.preventDefault();
var x = $(this).closest('tr').find('.chkEdit').val();
alert( x );
});
注意如果表是动态创建的,您可能希望使用动态事件委派,例如:
$('.someNotDynamicParent').on("click", ".chkUpdate", function(e){