无法通过JavaScript获取TextBox值

时间:2015-03-08 09:14:21

标签: javascript jquery html textbox

我有一个文本框othervalue,根据select标记的选择启用/禁用。

<select id="capability" name="capability[]" style="background-color: #ffffff;" onchange="selection(this)">
<option value="locMgm">Security</option>
<option value="satelliteComm">Maritime</option>
<option value="othersolution">Other</option>
</select>

值:

<script type="text/javascript">  
    $(function() {
        $("#capability").change(function() {
            if ($(this).val() == "othersolution") {
                console.log(true);
                $("#othervalue").removeAttr("disabled");
            }
            else {
                console.log(false);
                $("#othervalue").attr("disabled", "disabled");
            }
        });
    });                                    
</script>

我正在尝试在另一个JavaScript文件中读取othervalue的值:

var othertb = $("#othervalue").val();

然后检查textbox是否为空或包含值:

if (othertb == "") {
            message = "What solutions are you looking for - no text"

        }
        else
            {
        message = "What solutions are you looking for? "+othertb;
            }

问题:othertb没有任何内容(空),if else也无效。如何阅读if else无效的价值和原因。

EDIT1:var othertb = $("#othervalue").val();无法读取输入字段的值。

我现在尝试的只是读取值并在alert(othertb)中显示它以确保读取值但它是空的。你能帮忙看看这个价值吗?

EDIT2:这就是我在单个文件abc.com上尝试的内容:

<td style="background-color: #ffffff;color:#3f3f3f;">
     <ol start="4" style="width:auto;" class="container_16" >
      <li class="grid_8">What solutions are you looking for?</li></ol>
      <select id="capability" name="capability[]" style="background-color: #ffffff;" onchange="selection(this)">
        <option value="locMgm">Security</option>
        <option value="securityTrc">HSE</option>
        <option value="ivms">Transport and Logistics</option>
        <option value="satelliteComm">Maritime</option>
        <option value="all">Defence</option>
        <option value="othersolution">Other</option>
    </select>
    <label style="font-size:16px" for="value">Value:</label>
    <input type="text" id="othervalue" disabled="true"/>
    <script type="text/javascript">  
    var othertb = 'test';
    $(function() {
        $("#capability").change(function() {
            if ($(this).val() == "othersolution") {
                console.log(true);
                $("#othervalue").removeAttr("disabled");
                othertb = $('#othervalue').val();
            }
            else {
                console.log(false);
                $("#othervalue").attr("disabled", "disabled");
            }

        });
    });

</script>
</td>

<div id="btn-nxt">
<a href= "javascript:void(0)" 
onclick = "alert(othertb)> Submit here &raquo;</a>
</div>

当文本框为空时,页面显示alert Test。当文本框不为空时,显示的alert没有值,我看到空alert弹出。为什么没有读取价值?

1 个答案:

答案 0 :(得分:0)

您的代码中几乎没有问题。我已经更新了你的小提琴,它现在有效。拿一个look at this

var ov = $("#othervalue");

$("#capability").change(function() {
    ov.prop("disabled", true).val("");
    if ($(this).val() == "othersolution") {
        ov.prop("disabled", false);
    }
});

$("#getVal").click(function() {
    var cap = 'blah', othertb = ov.val();
    var message = "What solutions are you looking for? ";        
    cap = othertb ? othertb : cap;
    message += cap;
    $('#console').html("<br/><br/>" + message);
});