簡體   English   中英

使用Javascript從下拉列表中獲取未定義的值/文本

[英]Getting undefined value/text from drop down list using Javascript

當我從下拉列表中選擇項目時,我不知道為什么會得到未定義或空數據。

<form action="">
  <select class="form-control regist-user-input" id="user.attributes.countryId" name="user.attributes.countryId" required>
                        <option value="">Country</option>
                            <option value="1" >
                            AFGHANISTAN
                            </option>
                            <option value="2" >
                            ALAND ISLAND
                            </option>
                            <option value="3" >
                            ALBANIA
                            </option>
                            <option value="4" >
                            ALGERIA
                            </option>
                            <option value="5" >
                            AMERICAN SAMOA
                            </option>
                            <option value="6" >
                            ANDORRA
                            </option>
                            <option value="7" >
                            ANGOLA
                            </option>
                            <option value="8" >
                            ANGUILLA
                            </option>
                            <option value="9" >
                            ANTARCTICA
                            </option>
                            <option value="10" >
                            ANTIGUA AND BARBUDA
                            </option>
                    </select>
  <br><br>
  <input type="submit" onClick="myNewFunction()">
</form>

<script>
var e = document.getElementById('user.attributes.countryId');
var inpCountry = e.options[e.selectedIndex].text;

function myNewFunction() {
    alert(inpCountry.text);
}
</script>

當我嘗試警告它時,inpCountry.value和inpCountry.text都將獲取未定義的數據。 這里似乎有什么錯誤?

嘗試將元素放入函數中。 這是因為這兩行

var e = document.getElementById('user.attributes.countryId'); var inpCountry = e.options[e.selectedIndex].text;

其次,由於input類型為Submit,因此它是提交表單的默認行為

選擇提交按鈕后將不會更新

 function myNewFunction(e) { e.preventDefault() var e = document.getElementById('user.attributes.countryId'); var inpCountry = e.options[e.selectedIndex]; console.log(inpCountry.innerHTML.trim()); } 
 <form action=""> <select class="form-control regist-user-input" id="user.attributes.countryId" name="user.attributes.countryId" required> <option value="">Country</option> <option value="1"> AFGHANISTAN </option> <option value="2"> ALAND ISLAND </option> <option value="3"> ALBANIA </option> <option value="4"> ALGERIA </option> <option value="5"> AMERICAN SAMOA </option> <option value="6"> ANDORRA </option> <option value="7"> ANGOLA </option> <option value="8"> ANGUILLA </option> <option value="9"> ANTARCTICA </option> <option value="10"> ANTIGUA AND BARBUDA </option> </select> <br><br> <input type="submit" onClick="myNewFunction(event)"> </form> 

var inpCountry = e.options[e.selectedIndex].text;

function myNewFunction() {
    alert(inpCountry.text);
}

應該

function myNewFunction() {
    var inpCountry = e.options[e.selectedIndex].text; //so that selectedIndex is checked again whenever this function runs
    alert(inpCountry.text);
}

.text刪除到inpCountry。

 <form action=""> <select class="form-control regist-user-input" id="user.attributes.countryId" name="user.attributes.countryId" required> <option value="">Country</option> <option value="1" > AFGHANISTAN </option> <option value="2" > ALAND ISLAND </option> <option value="3" > ALBANIA </option> <option value="4" > ALGERIA </option> <option value="5" > AMERICAN SAMOA </option> <option value="6" > ANDORRA </option> <option value="7" > ANGOLA </option> <option value="8" > ANGUILLA </option> <option value="9" > ANTARCTICA </option> <option value="10" > ANTIGUA AND BARBUDA </option> </select> <br><br> <input type="submit" onClick="myNewFunction()"> </form> <script> var e = document.getElementById('user.attributes.countryId'); var inpCountry = e.options[e.selectedIndex].text; function myNewFunction() { alert(inpCountry); } </script> 

希望對您有幫助

函數myNewFunction(){

var e = document.getElementById('user.attributes.countryId');
var inpCountry = e.options[e.selectedIndex].text; 
alert(inpCountry);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM