js如何控制input标签中两个button给form表单的一个属性传值?

js如何控制input标签中两个button给form表单的一个属性传值?

问题描述:

如图两个按钮这两个按钮要给form表单传值,
图片说明
但只能传1(已启用)和0(已禁用),
而且只能传一个
html代码如下

 <li class="col-6"><label class="hzg-label">当前状态:</label>
    <input type="button" value="已启用" class="btn btn-size09 btn-c-g01" onclick="sure(1)"/>
    <input type="button" value="已禁用" class="btn btn-size09 btn-c-g01" onclick="sure(2)"/>
</li>

因为要根据这个条件搜索,所以要把0或1传给form的state,然后传给后台

放个hidden控件存储点的按钮值,要不你的按钮有name 2个值都会回传服务器,然后你服务器或者hidden的值

而且你的禁用值到底是0还是2?你html里面sure传递2,你自己描述是0,搞清楚来。。

 <li class="col-6">
    <label class="hzg-label">当前状态:</label>
    <input type="hidden" name="state" value="" id="state" />
    <input type="button" value="已启用" class="btn btn-size09 btn-c-g01" onclick="sure(1)" />
    <input type="button" value="已禁用" class="btn btn-size09 btn-c-g01" onclick="sure(2)" />
</li>
<script>
    function sure(v) {
        document.getElementById('state').value = v==2?0:v;////自己注意禁用的值到底是什么
    }
</script>

 function sure(state) {
    $("#formId").attr("state", state);
}

用input hidden按钮存要传的参数:
先建一个hidden按钮用来存要传的参数,在sure()方法里判断传入参数是1还是2,如果是1改变'已启用'按钮为选择后的样式,并且让'已禁用'的样式改为普通未选样式,把hidden值改为要传的值;传参为2则相反。

写一个隐藏的input存储state的值,因为初始化state要有值。所以只给出click事件是做不到的。click的事件修改隐藏input的值就可以了

你那个sure的参数有问题吧,应该是


function sure(state) {
$("#state").val(state);
}

是这样的,查询条件有3个,不知道用户输入几个的条件下查询,所以并不能单独提交,还要改点击后的样式,所以比较麻烦

    //查询
    //控制两个状态按钮改变样式
    function sure(key) {
        var bt1 = document.getElementById('onState');
        var bt2 = document.getElementById('offState');
        if(key==1){
            bt2.setAttribute("class", "btn btn-size09 btn-c-g01");
            bt1.setAttribute("class", "btn btn-size09 btn-c-b06");

        }else if(key==0){
            bt1.setAttribute("class", "btn btn-size09 btn-c-g01");
            bt2.setAttribute("class", "btn btn-size09 btn-c-b06");

        }
    }
    function searchForm(){
        $("#pageIndex").val("1");
        //名称
        $("#productName").val(Trim($("#productName").val()));
        //单位
        $("#unit").val(Trim($("#unit").val()));
        //状态

        var url = "/Consumer/product/productTypes/init";
        $("#proForm").attr("method","post");
        $("#proForm").attr("action", url);
        $("#proForm").submit();
    }

图片说明

问题已解决,具体需求是我的回答补充,解决办法参照3楼4楼,一楼的方法如果只有一个查询条件也可以
再次感谢所有回答的朋友们

这简单
可以 点击 button1 给隐藏域 js对象 传一个值
点击 button2 给隐藏域 js对象 传另一个值
后来 你进行表单提交 不就完了