Получение неопределенного значения для управления вводом - PullRequest
1 голос
/ 19 февраля 2020

В следующем коде html и javascript (codepen - https://codepen.io/manuchadha/pen/OJVXdzb) я хочу напечатать значение элемента управления input, но получаю значение как undefined - filename is undefined. Почему?

<!DOCTYPE html>
<html>
  <head>
    <title>some title</title>
    <script src="jquery/jquery-3.3.1.min.js"></script>
    <script src="index.js"></script>
  </head>
  <body>
    <div id="add-more-answer-div">
      <div id="answer-filename-div">
        <label id="filename-label" for="answer-filename">Name</label>
        <input type="text" id="answer-filename" />
        <button
          type="button"
          id="more-answer-button"
          onclick="createNewAnswerSection()"
        >
          Add More Sections
        </button>
      </div>
    </div>
  </body>
</html>
function createNewAnswerSection() {
  console.log("will create new answer section");
  var answerNameControl = $("#answer-filename");

  console.log("answer name control is ", answerNameControl);
  if (answerNameControl.value === "") {
    alert("give a filename to the answer");
  } else {
    console.log("filename is ", answerNameControl.value);
  }
}

Ответы [ 3 ]

1 голос
/ 19 февраля 2020

Пожалуйста, используйте answerNameControl.val () вместо answerNameControl.value

0 голосов
/ 19 февраля 2020

Вам не хватает синтаксиса jQuery, вы используете answerNameControl.value, который не является допустимым синтаксисом, вместо этого вы можете использовать $(answerNameControl).val(), чтобы получить значение. Ваш обновленный код такой, как показано ниже

<html>
<head>
<title>some title</title>
<script src="jquery/jquery-3.3.1.min.js"></script>
<script src="index.js"></script>
</head>
<body>

                  <div  id="add-more-answer-div">
                    <div id="answer-filename-div">
                        <label id="filename-label" for="answer-filename">Name</label>
                        <input type="text" id="answer-filename">
                        <button type="button" id="more-answer-button" onclick="createNewAnswerSection()">Add More Sections</button>
                    </div>
                  </div> 


</body>


</html>
<script>
function createNewAnswerSection(){
    console.log("will create new answer section");
    var answerNameControl = $("#answer-filename");

            console.log("answer name control is ",answerNameControl);
            if($(answerNameControl).val() === ''){
                alert("give a filename to the answer"); 
            } else {
                    console.log("filename is ",$(answerNameControl).val());
            } 
    }
0 голосов
/ 19 февраля 2020

Вы должны использовать val() на всех !

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="add-more-answer-div">
  <div id="answer-filename-div">
    <label id="filename-label" for="answer-filename">Name</label>
    <input type="text" id="answer-filename">
    <button type="button" id="more-answer-button" onclick="createNewAnswerSection()">Add More Sections</button>
  </div>
</div>

<script>
  function createNewAnswerSection() {
    console.log("will create new answer section");
    var answerNameControl = $("#answer-filename").val();

    console.log("answer name control is ", answerNameControl);
    if (answerNameControl === '') {
      alert("give a filename to the answer");
    } else {
      console.log("filename is ", answerNameControl);
    }
  }
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...