Javascript区分列表元素并按名称查找输入

时间:2014-08-13 10:13:58

标签: javascript events meteor

我有一个简单的HTML结构,我正在尝试使用Javascript确定列表中的不同项目:

<form>
<button type="submit">Submit</button>
<ul>
    <li>
        <input type="date" name="dateFrom" value="2014-01-01"/>
        <input type="date" name="dateTo" value="2014-01-15"/>
        <input type="text" name="elementId" value="1234"/>
        <input type="text" name="elementType" value="input"/>
    </li>
    <li>
        <input type="date" name="dateFrom" value="2014-01-01"/>
        <input type="date" name="dateTo" value="2014-01-15"/>
        <input type="text" name="elementId" value="2345"/>
        <input type="text" name="elementType" value="output"/>
    </li>
    <li> (...) </li>
    (...)
</ul>
</form>

我在MeteorJS中的方法。

Template.test.events({    
    'click button[type=submit]': function (ev, tpl) {
        ev.preventDefault();

        var serchObjects = [];
        var items = tpl.findAll('ul li');
        items.forEach(function(each) {
            // here I have each list element, but how to get the input elements?
            // I thought something like this:         
            serchObjects.push({
            'dateFrom': new Date(each.find('[name=dateFrom]').value),
            'dateTo': new Date(each.find('[name=dateTo]').value),
            'elementId': each.find('[name=elementId]').value,
            'meterType': each.find('[name=elementType]').value
            });
        });

        // (...)
    }
});

是否有一些智能流星功能可以做到这一点?我的目标是,使用包含my参数的对象列表。

//编辑:我通过以下方法解决了这个问题:

var dateFrom = tpl.findAll('[name=dateFrom]');
var dateTo = tpl.findAll('[name= dateTo]');
var elementId = tpl.findAll('[name=elementId]');
var elementType = tpl.findAll('[name=elementType]');

dateFrom.forEach(function(each, index) {
    serchObjects.push({
        'dateFrom': new Date(dateFrom[index].value),
        'dateTo': new Date(dateTo[index].value),
        'elementId': elementId[index].value,
        'elementType': elementType[index].value
    });
});

0 个答案:

没有答案