te')); return $arr; } /* 遍历用户所有主题 * @param $uid 用户ID * @param int $page 页数 * @param int $pagesize 每页记录条数 * @param bool $desc 排序方式 TRUE降序 FALSE升序 * @param string $key 返回的数组用那一列的值作为 key * @param array $col 查询哪些列 */ function thread_tid_find_by_uid($uid, $page = 1, $pagesize = 1000, $desc = TRUE, $key = 'tid', $col = array()) { if (empty($uid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('uid' => $uid), array('tid' => $orderby), $page, $pagesize, $key, $col); return $arr; } // 遍历栏目下tid 支持数组 $fid = array(1,2,3) function thread_tid_find_by_fid($fid, $page = 1, $pagesize = 1000, $desc = TRUE) { if (empty($fid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('fid' => $fid), array('tid' => $orderby), $page, $pagesize, 'tid', array('tid', 'verify_date')); return $arr; } function thread_tid_delete($tid) { if (empty($tid)) return FALSE; $r = thread_tid__delete(array('tid' => $tid)); return $r; } function thread_tid_count() { $n = thread_tid__count(); return $n; } // 统计用户主题数 大数量下严谨使用非主键统计 function thread_uid_count($uid) { $n = thread_tid__count(array('uid' => $uid)); return $n; } // 统计栏目主题数 大数量下严谨使用非主键统计 function thread_fid_count($fid) { $n = thread_tid__count(array('fid' => $fid)); return $n; } ?>javascript - Combobox change value of other combobox - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Combobox change value of other combobox - Stack Overflow

programmeradmin3浏览0评论

I have two boboxes on an form. Each has the values Yes and No. What I want is when one is changed the other get the opposite (if the first is Yes the other is No).I need to do it with Javascript. I saw this question How to change "selected" value in bobox using JavaScript? but it is applied to only one bobox.

How can I do this?

LE:I need this example to be make with boboxes. I can not use radio buttons

I have two boboxes on an form. Each has the values Yes and No. What I want is when one is changed the other get the opposite (if the first is Yes the other is No).I need to do it with Javascript. I saw this question How to change "selected" value in bobox using JavaScript? but it is applied to only one bobox.

How can I do this?

LE:I need this example to be make with boboxes. I can not use radio buttons

Share Improve this question edited Sep 6, 2021 at 11:39 Brian Tompsett - 汤莱恩 5,89372 gold badges61 silver badges133 bronze badges asked Jun 2, 2011 at 7:59 RBARBA 12.6k16 gold badges83 silver badges133 bronze badges 2
  • if its just yes/no, why are you using bobox and making it plex, just use checkbox, you can easily flip it.. – niksvp Commented Jun 2, 2011 at 8:01
  • Or even the more-appropraitely designed radio button and groupings! – Mutation Person Commented Jun 2, 2011 at 8:03
Add a ment  | 

3 Answers 3

Reset to default 6

I created a simple jsFiddle Demo. This is not perfect, just illustrates the idea.

HTML:

<select id="first">
    <option value="0" selected>No</option>
    <option value="1">Yes</option>
</select>

<select id="second">
    <option value="0">No</option>
    <option value="1" selected>Yes</option>
</select>

Javascript:

//find the selects in the DOM
var first = document.getElementById('first');
var second = document.getElementById('second');

//this is the handler function we will run when change event occurs
var handler = function () {
    //inside the handler, "this" should be the select 
    //whose change event we are currently handling

    //get the current value and invert it (0 -> 1, 1 -> 0)
    var invertedValue = this.value === '0' ? 1 : 0;

    //check which select's change we are currently handling
    //and set the inverted value as the other select's value
    if (this === first) {
        second.value = invertedValue;
    } else {
        first.value = invertedValue;
    }

};

//add handler function to run on change event on both selects
first.addEventListener('change', handler, false);
second.addEventListener('change', handler, false);

I believe this is what you are looking for:

<select id="bo1" onchange="FlipOtherCombo(this, 'bo2')">
    <option value="yes">yes</option>
    <option value="no">no</option>
</select>
<select id="bo2" onchange="FlipOtherCombo(this, 'bo1')">
    <option value="yes">yes</option>
    <option selected="selected" value="no">no</option>
</select>

<script>
    function FlipOtherCombo(objCombo, strOtherComboId){
        if (objCombo.value ==="yes"){
            document.getElementById(strOtherComboId).value = "no";
        } else {
            document.getElementById(strOtherComboId).value = "yes";
        }
    }
</script>

Also at this JSFiddle.

Although, using radio buttons for simple yes/no options like this is better.

Here is my own attempt working with yes/no values ..

html

<select name="bo1" id="bo1">
    <option value="Yes">Yes</option>
    <option value="No">No</option>
</select>
<br /><br />
<select name="bo2" id="bo2">
    <option value="Yes">Yes</option>
    <option value="No">No</option>
</select>

javascript

window.onload = function() { BindEvent(); }

function BindEvent()
{
    var c1 = document.getElementById ( 'bo1' );
    var c2= document.getElementById ( 'bo2' );

    c1.onchange = invert;
    c2.onchange = invert;

    c1.onchange(); //initialize
}

function invert() {
         var otherElem = document.getElementById( (this.id=='bo1')? 'bo2' : 'bo1');
         otherElem.value = (this.value=='Yes')?'No':'Yes';
    }

demo http://jsfiddle/gaby/7Ujh2/

发布评论

评论列表(0)

  1. 暂无评论