12559


URLパラメータを取得し、formのtextboxに入力したいと考えています。もし、パラメータが存在しない場合にはtextboxを非活性で表示するためにはどのようにしたらよいでしょうか。

以下では、codeというパラメータがあれば入力された状態となりますが、パラメータがなければ「undifined」となります。これをdisabled状態としたいのですが…。

[code]

    <head>
    <script type="text/javascript">
    <!--
    var qsParm = new Array();
    var query = window.location.search.substring(1);
    var parms = query.split('&');
    for (var i=0; i<parms.length; i++) {
    var pos = parms[i].indexOf('=');
    if (pos > 0) {
    var key = parms[i].substring(0,pos);
    var val = parms[i].substring(pos+1);
    qsParm[key] = val;
    }
    }
    
    function into(){
    document.getElementById("target").value = qsParm["code"];
    }
    // -->
    </script>
    </head>
    <body onload="into()">
        <form action="/hoge" method="post">
            <input type="text" name="code" id="target"><br />
            <button type="submit">Submit</button>
        </form>
    </body>
    
[/code]


CC BY-SA 3.0
2015-07-22T02:11:53.997
12558
2015-07-22T02:44:07.153
8008
question
javascript
URLパラメータをformに入力、ない場合はdisabled属性にする。


以下の様にすればいいかと思います。

[code]

    function into(){
        var element = document.getElementById("target");
        if(qsParm["code"] !== undefined){//undefined かどうか調べる
            element.value = qsParm["code"];//undefinedでないので値をセット
        } else {
            element.value = "";//以前の内容をクリア、(必要無し？)
            element.disabled = true;//disabled をセット
        }
    }
    
[/code]


CC BY-SA 3.0
2015-07-22T02:44:07.153
12559
2015-07-22T02:44:07.153
5044
12558
answer