すべての入力フィールドにテキストが含まれるまでボタンクリックを無効にします(javascript&jquery)

ヘイリー

私は始めたばかりです。私はHTML、CSS、JavaScriptを知っており、今はjQueryを学んでいます。3つの入力ボックスと1つのボタンがあります。入力ボックスのいずれかが空の場合にボタンをクリックできるようにしたくありません。これが私のコードが今どのように立っているかです...

let garage = [];
const maxCars = 100;

class Car{
  constructor(year, make, model){
    this.year = year;
    this.make = make;
    this.model = model;
  }
}

$(document).ready(function() {

  $('#addCarButton').on('click', function() {
    let newCar = new Car($('#yearInput').val(), $('#makeInput').val(), $('#modelInput').val() );

    if (garage.length < maxCars){
      garage.push(newCar);
    } else {
      console.log('Sorry garage is full');
      return false;
    }

    updateGarage();

    $('#yearInput').val('');
    $('#makeInput').val('');
    $('#modelInput').val('');
  });
});

function newCar(year, make, model){
  console.log('in newCar:', year, make, model);
  garage.push(new Car(year, make, model));
  return true;
}

function updateGarage() {
  let outputElement = $('#garageList');
  outputElement.empty();
  for (let car of garage) {
      outputElement.append('<li>' + Number(car.year) + ' ' + car.make + ' ' + car.model + '</li>');
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Garage</title>
  </head>
  <body>
    <h1>Garage</h1>
    
    <div id="garageDiv"></div>
    
    <div id="inputDiv">
      <input type="number" placeholder="year" id="yearInput" >
      <input type="text" placeholder="make" id="makeInput" >
      <input type="text" placeholder="model" id="modelInput" > 
      <button type="button" id="addCarButton">Add Car</button>
    </div>  
      <ul id="garageList">
      </ul>

    <script src="scripts/jquery-3.3.1.min.js" charset="utf-8"></script>
    <script src="scripts/scrap.js" charset="utf-8"></script>
  </body>
</html>

解決策はこんな感じになると思います...

$(document).ready(function() {
$('#addCarButton').prop('disabled', true);
  if ($('#modelInput').val().length != 0) {
  $('#addCarButton').prop('disabled', false);}
$('#addCarButton').on('click', function() {

無効化/有効化は機能すると思いますが、どの条件を使用すればよいかわかりません。私が持っているのは1つの入力をテストするだけですが、各入力にコンテンツがある場合にのみボタンが有効になるようにしたいと思います。

ここにあるものを実行すると、何があってもボタンが無効になります。私は遊んでみましたが、ランダムな条件が真の場合に有効にすることができます。

また、条件を複数回実行してチェックする方法が必要だと感じていますが、その方法がわかりません。

chebaby

$(function() {

let garage    = [];
const maxCars = 100;

class Car {

    constructor(year, make, model) {

        this.year = year;
        this.make = make;
        this.model = model;
    }
}


$('#yearInput, #makeInput, #modelInput').on('input', function(event) {

    let year  = $('#yearInput').val();
    let make  = $('#makeInput').val();
    let model = $('#modelInput').val();

    if(year && make && model) {

        $('#addCarButton').prop('disabled', false);
    }
});

$('#addCarButton').on('click', function() {

    let year = $('#yearInput').val();
    let make = $('#makeInput').val();
    let model = $('#modelInput').val();

    let newCar = new Car(year, make, model);

    if (garage.length < maxCars) {

        garage.push(newCar);

    } else {

        console.log('Sorry garage is full');
        return false;
    }

    updateGarage();

    $('#yearInput').val('');
    $('#makeInput').val('');
    $('#modelInput').val('');

    $('#addCarButton').prop('disabled', true);
});

function newCar(year, make, model) {

    console.log('in newCar:', year, make, model);
    garage.push(new Car(year, make, model));
    return true;
}

function updateGarage() {
    
    let outputElement = $('#garageList');
    outputElement.empty();

    for (let car of garage) {

        outputElement.append('<li>' + Number(car.year) + ' ' + car.make + ' ' + car.model + '</li>');
    }
}

});
<html>
<head>
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head>
<body>

<h1>Garage</h1>

<div id="garageDiv"></div>

<div id="inputDiv">
    <input type="number" placeholder="year" id="yearInput" >
    <input type="text" placeholder="make" id="makeInput" >
    <input type="text" placeholder="model" id="modelInput" > 
    <button type="button" id="addCarButton" disabled>Add Car</button>
</div>  
<ul id="garageList">
</ul>

</body>
</html>

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

すべてのテキストフィールドがXcodeに入力されるまでボタンを無効にします

分類Dev

クラスjqueryのすべての入力テキストフィールドを無効にしました

分類Dev

すべてのフィールドがクリアされるまでボタンを無効にします

分類Dev

すべてのテキストフィールドに入力されている場合にのみ、Swiftでボタンを有効にします

分類Dev

すべてのテキスト入力フィールドに入力しない限り、フォームボタンを無効にします

分類Dev

Python tkinterは、すべてのフィールドにデータが入力されるまで「送信」ボタンを無効にします

分類Dev

フレックスボックスにテキスト入力フィールドが含まれている場合、フレックスボックスが広くなるのを防ぐにはどうすればよいですか?

分類Dev

Jqueryを使用して、ラジオボタンがクリックされたときのテキスト入力フォームを無効または有効にします

分類Dev

入力フィールドが入力されるまで送信ボタンを無効にします

分類Dev

ボタン(私が書いたようにこの入力にテキストを挿入する)でJQueryスクリプト(入力にテキストを書き込むフィルター/ハイライト)をトリガーしますか?

分類Dev

チェックボックスのクリックでテキストフィールドを有効/無効にしようとしています

分類Dev

すべてのフィールドが入力されるまでJavascript無効化ボタン

分類Dev

テーブル内のすべてのレコードのテキストボックスが空の場合は、ボタンを無効にします

分類Dev

ボタンクリックでテキストフィールドの選択されたテキストを取得する方法は?pickerviewは、テキストフィールドへの入力ビューとして設定されます。迅速

分類Dev

角度4を使用して入力フィールドが空の場合、ボタンクリックを無効にします

分類Dev

すべてのフォーム入力にデータが含まれるまで、送信ボタンを無効にします

分類Dev

誰かがjavascriptまたはjqueryを使用してテキストを貼り付けたときに、入力フィールド内のテキストの先頭でのみ空白を無効化/削除するにはどうすればよいですか?

分類Dev

Tkinter、クリックすると、他のテキストボックスをテキストボックス1に含まれているテキストまでスクロールします。タグバインドなしで可能ですか?

分類Dev

すべての入力がAngularjsに入力されるまで、送信ボタンをデフォルトの状態として無効にします

分類Dev

Angular2-テキストボックスに入力した値の削除/キャンセルテキストを表示し、テキストの削除/キャンセルをクリックして入力フィールドをクリアします

分類Dev

チェックボックスをオンにすると、角度のあるリアクティブフォームで入力が無効になります

分類Dev

クリック後、JavaScriptを使用してascxコントロールがポストバックされるまでボタンを無効にします

分類Dev

編集ボタンをクリックすると、すべてのテーブル値が入力ボックスに変更されましたか?

分類Dev

ユーザーがボタンxをクリックしたときに、入力フィールドxにテキストを追加します

分類Dev

チェックボックスをオフにすると、入力タイプのテキストフィールドが繰り返されます

分類Dev

jQueryボタンをブートストラップし、クリックしてテキスト/入力フィールドを切り替えます

分類Dev

別のコンテナに入力フィールドを追加した後、もう一度クリックしない限り、テキスト入力を入力し続けることができません。それは焦点を失います

分類Dev

jQueryは、すべてのフィールドに入力する前に続行ボタンを無効にします

分類Dev

すべてのフィールドが完了するまで送信ボタンを無効にします

Related 関連記事

  1. 1

    すべてのテキストフィールドがXcodeに入力されるまでボタンを無効にします

  2. 2

    クラスjqueryのすべての入力テキストフィールドを無効にしました

  3. 3

    すべてのフィールドがクリアされるまでボタンを無効にします

  4. 4

    すべてのテキストフィールドに入力されている場合にのみ、Swiftでボタンを有効にします

  5. 5

    すべてのテキスト入力フィールドに入力しない限り、フォームボタンを無効にします

  6. 6

    Python tkinterは、すべてのフィールドにデータが入力されるまで「送信」ボタンを無効にします

  7. 7

    フレックスボックスにテキスト入力フィールドが含まれている場合、フレックスボックスが広くなるのを防ぐにはどうすればよいですか?

  8. 8

    Jqueryを使用して、ラジオボタンがクリックされたときのテキスト入力フォームを無効または有効にします

  9. 9

    入力フィールドが入力されるまで送信ボタンを無効にします

  10. 10

    ボタン(私が書いたようにこの入力にテキストを挿入する)でJQueryスクリプト(入力にテキストを書き込むフィルター/ハイライト)をトリガーしますか?

  11. 11

    チェックボックスのクリックでテキストフィールドを有効/無効にしようとしています

  12. 12

    すべてのフィールドが入力されるまでJavascript無効化ボタン

  13. 13

    テーブル内のすべてのレコードのテキストボックスが空の場合は、ボタンを無効にします

  14. 14

    ボタンクリックでテキストフィールドの選択されたテキストを取得する方法は?pickerviewは、テキストフィールドへの入力ビューとして設定されます。迅速

  15. 15

    角度4を使用して入力フィールドが空の場合、ボタンクリックを無効にします

  16. 16

    すべてのフォーム入力にデータが含まれるまで、送信ボタンを無効にします

  17. 17

    誰かがjavascriptまたはjqueryを使用してテキストを貼り付けたときに、入力フィールド内のテキストの先頭でのみ空白を無効化/削除するにはどうすればよいですか?

  18. 18

    Tkinter、クリックすると、他のテキストボックスをテキストボックス1に含まれているテキストまでスクロールします。タグバインドなしで可能ですか?

  19. 19

    すべての入力がAngularjsに入力されるまで、送信ボタンをデフォルトの状態として無効にします

  20. 20

    Angular2-テキストボックスに入力した値の削除/キャンセルテキストを表示し、テキストの削除/キャンセルをクリックして入力フィールドをクリアします

  21. 21

    チェックボックスをオンにすると、角度のあるリアクティブフォームで入力が無効になります

  22. 22

    クリック後、JavaScriptを使用してascxコントロールがポストバックされるまでボタンを無効にします

  23. 23

    編集ボタンをクリックすると、すべてのテーブル値が入力ボックスに変更されましたか?

  24. 24

    ユーザーがボタンxをクリックしたときに、入力フィールドxにテキストを追加します

  25. 25

    チェックボックスをオフにすると、入力タイプのテキストフィールドが繰り返されます

  26. 26

    jQueryボタンをブートストラップし、クリックしてテキスト/入力フィールドを切り替えます

  27. 27

    別のコンテナに入力フィールドを追加した後、もう一度クリックしない限り、テキスト入力を入力し続けることができません。それは焦点を失います

  28. 28

    jQueryは、すべてのフィールドに入力する前に続行ボタンを無効にします

  29. 29

    すべてのフィールドが完了するまで送信ボタンを無効にします

ホットタグ

アーカイブ