如何使用jQuery的prop函数获取文本框的值

时间:2014-12-07 06:36:36

标签: javascript jquery html jsfiddle

我正在尝试获取某个文本框的值,但它不起作用,更多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被编辑,启用功能正在运行,但我仍然无法获得警报

2 个答案:

答案 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){