使用jquery父函数获取隐藏输入的值

时间:2014-11-24 10:32:01

标签: javascript jquery html css

我正在尝试获取存储在隐藏输入字段中的值。 'onchange'或'onfocusout'事件我正在调用JavaScript函数,但我无法在'id'变量中获得正确的值。

这是我的HTML:

<div class="row-wrapper">
    <input type="hidden" name="hiddenID" class="hiddenID" value="1" />
    <table class="default-table">

        <tr>
            <th>Client <em>*</em>
            </th>
            <th>Project <em>*</em>
            </th>
            <th>Category <em>*</em>
            </th>
            <th>Description</th>
            <th class="small">Time <em>*</em>
            </th>
            <th class="small">Overtime</th>
        </tr>
        <tr>
            <td>
                <select name="client" class='client' onchange='return update(event, "client");'>
                    <option>Choose client</option>
                    <option>Client 1</option>
                    <option>Client 2</option>
                </select>
            </td>
            <td>
                <select name="project" class='project' onchange='return update(event, "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>
</div>

这是我现在的脚本:

<script type="text/javascript">
        $('input[name=description]').focusout(function () {
            update($(this), 'description');
        });

        $('input[name=time]').focusout(function () {
            update($(this), 'time');
            calculate();
        });

        function update(event, type) {
            var id = $(event.target).parent().find('.hiddenID').val();
            var this_element = $(event.target).val();
            alert('id: ' + id + ' this element val: ' + this_element + ' this element is: ' + type);

            $(event.target).parent().find('.id').val();

            return false;
        }
</script>

在jquery中使用parent()函数的正确方法是什么?我正在阅读文档,因为我知道parent()只找到父div标签。是否有一些其他函数可以使用表并找到与表相同的div标签中的隐藏输入?

2 个答案:

答案 0 :(得分:1)

将名称放在引号中:$('input [name =“id”]')

或$('[name =“id”]')。val();

答案 1 :(得分:1)

问题在于你的update()函数:

新守则:

    function update(event, type) {
        var id = $(event.target).closest('.row-wrapper').find('.hiddenID').val();
        var this_element = $(event.target).val();
        alert('id: ' + id + ' this element val: ' + this_element + ' this element is: ' + type);

        $(event.target).parent().find('.id').val();

        return false;
    }