javascript - 我想在最后一次选择 onchange 时提交表单 我有多个选择,选项是动态生成的

标签 javascript

在最后选择 onchange 时提交表单:我有多个选择,选项是动态生成的。

 var children = $H(<?php echo json_encode($tree['children']) ?>);

    function showCat(obj, level) {
        var catId = obj.value;
        level += 1

        if ($('cat_container_' + level)) {
            $('cat_container_' + level).remove();

        }
        if (children.get(catId)) {
            var options = children.get(catId);
            var html = '<select id="cat_' + catId + '" onchange="showCat(this, ' + level + ')">';
            for (var i = 0; i < options.length; i++) {
                html += '<option value="' + options[i].entity_id + '">' + options[i].name + '</option>';
            }
            html += '</select>';
            html = '<div id="cat_container_' + level + '">' + html + '</div>';

            $('sub_cat').insert(html);
        }
    }

我使用 select onchange 同时添加选择此代码仅提交第一级选择。我里面有很多级别,并且选项是动态生成的。我想在最后一次选择 onchange 时提交。

 <form  id="search_mini_form" action="<?php echo $catalogSearchHelper->getResultUrl() ?>" method="get">
        <select id="first_cat" onchange="showCat(this, 2);this.form.submit()" name="<?php echo $catalogSearchHelper->getQueryParamName() ?>" value="<?php echo $catalogSearchHelper->getEscapedQueryText(); ?>" class="input-text"   >
            <?php foreach ($tree['first'] as $cat): ?>
                <option value="<?php echo $cat->getId() ?>"><?php echo $cat->getName() ?></option>
            <?php endforeach ?>
        </select>

        <button type="submit"   title="<?php echo $this->__('Search') ?>"   class="button"><span><span><?php echo $this->__('Search') ?></span></span></button>



    </form>

最佳答案

var select = document.getElementsByTagName('select')[0];
function myFunction(e){
 if(e.value == select.options[select.options.length-1].text){
    alert("Last value selcted")
 }
}

var select = document.getElementsByTagName('select')[0];

function myFunction(e){

if(e.value == select.options[select.options.length-1].text){
alert("Last value selcted")
}
}
<select onchange="myFunction(this)">
    <option>item1</option>
    <option>item2</option>
    <option>item3</option>
    <option>item4</option>
    <option>item5</option>
</select>

关于javascript - 我想在最后一次选择 onchange 时提交表单 我有多个选择,选项是动态生成的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34871955/

相关文章:

javascript - 如何使动态插入的 html 对象可点击?

javascript - JWPlayer Javascript 文件加载

javascript - 仅使用 AJAX、HTML5 和 Jquery 创建购物车系统

javascript - 使用 WebFont 加载器时,如何硬编码 css?

javascript - 悬停()事件处理程序不尊重动态更改的类

javascript - 如何使用间隔循环修改 HTML Canvas 颜色?

javascript - 移动浏览器上的虚拟键盘隐藏内容而不是将其向上推

javascript - 如何在 vue.js 中使用监听器捕获 Google map 事件

javascript - ReactJs 中的内联 CSS 样式

javascript - 在 JavaScript 中,如何编写一个函数来接收命名元素以有条件地插入数组?