Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery在表中获取dropbox和textbox值_Javascript_Jquery_Html_Asp.net - Fatal编程技术网

Javascript 使用jQuery在表中获取dropbox和textbox值

Javascript 使用jQuery在表中获取dropbox和textbox值,javascript,jquery,html,asp.net,Javascript,Jquery,Html,Asp.net,我想做一件容易的事。从一个表行onfocus事件中获取值。 我有一个糟糕的实践作业,在不点击按钮的情况下插入数据库,所以我决定对行中的最后一个单元格使用onfocus事件 问题是我对jquery和javaScript非常陌生,所以我很难选择这个dropbox和textbox并将值输入变量,稍后我将使用Ajax将这些值传递给代码 有人能帮我解决这个问题吗 为了简单起见,这是其中一行的HTML,所有其他行都是相同的,表是静态的: <table class="default-table" id=

我想做一件容易的事。从一个表行onfocus事件中获取值。 我有一个糟糕的实践作业,在不点击按钮的情况下插入数据库,所以我决定对行中的最后一个单元格使用onfocus事件

问题是我对jquery和javaScript非常陌生,所以我很难选择这个dropbox和textbox并将值输入变量,稍后我将使用Ajax将这些值传递给代码

有人能帮我解决这个问题吗

为了简单起见,这是其中一行的HTML,所有其他行都是相同的,表是静态的:

<table class="default-table" id="tblTest">
    <tr>
        <td>
            <select name="client" class='client'>
                <option>Choose client</option>
                <option>Client 1</option>
                <option>Client 2</option>
            </select>
        </td>
        <td>
            <select name="project" class='project'>
                <option>Choose project</option>
                <option>Project 1</option>
                <option>Project 2</option>
            </select>
        </td>
        <td>
            <select>
                <option>Choose category</option>
                <option>Front-End Development</option>
                <option>Design</option>
            </select>
        </td>
        <td>
            <input type="text" class="in-text medium" name="description" />
        </td>
        <td class="small">
            <input type="text" class="in-text xsmall" name="time" />
        </td>
        <td class="small">
            <input type="text" class="in-text xsmall" name="time" />
        </td>
    </tr>
    <tr>
        <td>
            <select>
                <option>Choose client</option>
                <option>Client 1</option>
                <option>Client 2</option>
            </select>
        </td>
        <td>
            <select>
                <option>Choose project</option>
                <option>Project 1</option>
                <option>Project 2</option>
            </select>
        </td>
        <td>
            <select>
                <option>Choose category</option>
                <option>Front-End Development</option>
                <option>Design</option>
            </select>
        </td>
        <td>
            <input type="text" class="in-text medium" />
        </td>
        <td class="small">
            <input type="text" class="in-text xsmall" />
        </td>
        <td class="small">
            <input type="text" class="in-text xsmall" />
        </td>
    </tr>
</table>

选择客户
客户1
客户2
选择项目
项目1
项目2
选择类别
前端开发
设计
选择客户
客户1
客户2
选择项目
项目1
项目2
选择类别
前端开发
设计
我一直在尝试使用jquery获取一些值,但其中没有一种工作正常:

<script type="text/javascript">

        $("#tblTest td:nth-child(6)").focusout(function (event) {

            var $td = $(this).closest('tr').children('td');
            // tr2 use to be value of id attribute for <tr>, but I deleted it because I want to 
            // use same script for each row

            //var time = $('#tr2 td.eq(5) input').text();
            //var client = $('#tr2 td.eq(1)').text();
            var project = ('$td.eq(2) select option:selected').text();
            var overtime = $td.eq(6).text();
        });
</script>

$(“#tblTest td:n个孩子(6)”).focusout(函数(事件){
var$td=$(this).closest('tr')。children('td');
//tr2用作的id属性的值,但我删除了它,因为我想删除它
//对每行使用相同的脚本
//var time=$('#tr2 td.eq(5)input').text();
//var client=$('#tr2 td.eq(1)').text();
var项目=('$td.eq(2)选择选项:selected').text();
var超时=$td.eq(6.text();
});

我怎样才能得到这个值?非常感谢

您可以这样做:-

$("#tblTest td:nth-child(6)").focusout(function () {
    var parentRow = $(this).parents('tr')[0];
    var time = $('input[name="time"]', parentRow).val();
    var client = $('.client option:selected', parentRow).text();
    var project = $('.project option:selected',parentRow).text();
    var overtime = $('input[name="overtime"]', parentRow).val();
    //Similarly you can find other values
});

注意:我想你上次输入了两次
time
textbox,所以我认为这是超时。

id为“tr2”的元素在哪里?@frosdq抱歉,我忘了删除它。我尝试过给id,但我意识到它无法像这样获得每一行的值。如果可能的话,使用类名可能是更好的方法。我现在要删除:)这对我帮助很大!非常感谢你!:)