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

How to get the value of a text box using jQuery's prop function

本文关键字:取文本 获取 prop 何使用 jQuery 函数      更新时间:2023-09-26

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

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中完成所有操作!js小提琴演示

$('.chkUpdate').on("click", function(e){
    e.preventDefault();
    var x = $(this).closest('tr').find('.chkEdit').val();
    alert( x );
});

请注意,如果表是动态创建的,则可能需要使用动态事件委托,如下所示:

$('.someNotDynamicParent').on("click", ".chkUpdate", function(e){

> http://jsfiddle.net/k0cfj48L/2/

我已经修好了你的小提琴。

1) JQuery 不包括在内,因此 $(document).ready() 中的 '$' 没有定义。

2)我将JS更改为包含在头部中,以便按照页面执行时的定义读取您的检查函数。

3)你的check函数没有直接在事件中实例化,所以$(this)什么都不做,而只是一个窗口引用。 我包括正确选择文本区域,但我会考虑使用 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 ;
  }