Nano Hash - криптовалюты, майнинг, программирование

Создать функцию с изменяющимися полями (Javascript?)

Пытаюсь реализовать функцию создания списка контактов.

Я хочу, чтобы он функционировал таким образом, чтобы в первом вопросе запрашивался «тип контакта» с тремя полями: индивидуальный, коллективный и корпоративный.

При выборе одного из полей поля ниже изменятся. Отдельный человек будет показывать все поля (имя, компания, должность, телефон, электронная почта, адрес), в то время как компания не будет запрашивать имя/название, а команда не будет запрашивать название. Все эти поля + первый вопрос уже являются строками в mysql.

Я понятия не имею, с чего начать, как должен работать синтаксис и как включить javascript в эту функцию? А рекомендации?

Ваше здоровье!

Редактировать: мой плохой. Итак, у меня все поля уничтожены.

 <!DOCTYPE html>
 <html>
<head>
<title>Create new contact</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<div class="row">
    <form method="post" class="form-horizontal col-md-6 col-md-offset-3">
        <h2>Motoko Insurance Contacts</h2>



<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"/>   
<script> 
$( document ).ready(function() {
listenForInputChanges();
})

function listenForInputChanges() {
$('#contactType >input').change(function(){
 console.log('val is '+$(this).val())
 switch($(this).val()) {
 case 'individual':
$('#nameDiv').show();
$('#companyDiv').show();
$('#titleDiv').show();
$('#phoneDiv').show();
$('#emailDiv').show();
$('#addressDiv').show();
 break;

  case 'team':
 $('#nameDiv').show();
 $('#companyDiv').show();
 $('#titleDiv').hide();
 $('#phoneDiv').show();
 $('#emailDiv').show();
 $('#addressDiv').show();
 break;

case 'company':
$('#nameDiv').hide();
$('#companyDiv').show();
$('#titleDiv').hide();
$('#phoneDiv').show();
$('#emailDiv').show();
$('#addressDiv').show();
break;
  }
})
}
</script>   

<div class="form-group">
 <label for="input" class="col-sm-2 control-label">What type of contact are you adding?</label>
 <div class="col-sm-10">
<input type="radio" name="Contact_type"
value="individual" > Individual
<input type="radio" name="Contact_type"
value="team"> Team
 <input type="radio" name="Contact_type"
value="company"> Company</div>
 </div>



        <div class="form-group">
            <label for="input1" class="col-sm-2 control-label">Name</label>
            <div class="col-sm-10">
              <input type="text" name="name"  class="form-control" id="input1" placeholder="Name" 
/>
            </div>
        </div>

        <div class="form-group">
            <label for="input1" class="col-sm-2 control-label">Company</label>
            <div class="col-sm-10">
              <input type="text" name="comp"  class="form-control" id="input1" placeholder="Company" />
            </div>
         </div>

        <div class="form-group">
            <label for="input1" class="col-sm-2 control-label">Title</label>
            <div class="col-sm-10">
              <input type="text" name="title"  class="form-control" id="input1" placeholder="Title" />
            </div>
        </div>


        <div class="form-group">
            <label for="input1" class="col-sm-2 control-label">Phone</label>
            <div class="col-sm-10">
              <input type="int" name="urstel"  class="form-control" id="input1" placeholder="Phone" 
 />
            </div>
        </div>

        <div class="form-group">
            <label for="input1" class="col-sm-2 control-label">Email</label>
            <div class="col-sm-10">
              <input type="email" name="email"  class="form-control" id="input1" placeholder="E Mail" />
            </div>
        </div>

        <div class="form-group">
            <label for="input1" class="col-sm-2 control-label">Address</label>
            <div class="col-sm-10">
              <input type="text" name="location"  class="form-control" id="input1" placeholder="Address" />
            </div>
        </div>

        <input type="submit" class="btn btn-primary col-md-2 col-md-offset-10" value="submit" />
    </form>

</div>
</div>
 </body>
 </html>    
14.02.2018

  • Я бы начал создавать форму со всеми возможными полями и, в зависимости от вызова, скрыть ome или другое поле из HTML либо с помощью jQuery, либо с помощью необработанного JS. В любом случае, было бы полезно увидеть любой код от вас... 14.02.2018
  • это как служба бесплатного кодирования тонким способом 14.02.2018
  • @plonknimbuzz мой плохой. У меня есть все, что касается полей, $createsql и т. д. Это просто вопрос исчезновения полей при выборе типа контакта. Мне сказали, что потребуется javascript, но я действительно не уверен :( 14.02.2018
  • Код @AxelAmthor выше. Все довольно стандартные поля. На данный момент все функционально. Просто нужна функция, позволяющая изменять поля при заполнении радиоблока. 14.02.2018

Ответы:


1

Это очень просто с jQuery — я создал фиктивный пример, просто скрывая и показывая некоторые значения, когда вы нажимаете на входные данные.

$( document ).ready(function() {
  listenForInputChanges();
})

function listenForInputChanges() {
  $('#contactType >input').change(function(){
    console.log('val is '+$(this).val())
    switch($(this).val()) {
    case 'individual':
      $('#nameDiv').show();
      $('#companyDiv').hide();
    break;

    case 'team':
      $('#nameDiv').show();
      $('#companyDiv').show();
    break;

    case 'company':
      $('#nameDiv').hide();
      $('#companyDiv').show();
    break;
    }
  })
} // end inputChanger
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"/>

<div class="form-group">
<label for="input" class="col-sm-6 control-label">What type of contact are you adding?</label>
 <div id="contactType" class="col-sm-10">
<input type="radio" name="Contact_type" value="individual" checked> Individual
 <input type="radio" name="Contact_type" value="team"> Team
 <input type="radio" name="Contact_type" value="company"> Company</div>
 </div>

<div id="nameDiv" class="form-group">
<div class="col-sm-10">
 <input type="text" name="name"  class="form-control" id="input1" placeholder="Name" />
 </div>
 </div>

<div id="companyDiv" class="form-group">
<label for="input1" class="col-sm-2 control-label">Company</label>
<div class="col-sm-10">
<input type="text" name="comp"  class="form-control" id="input1" placeholder="Company" />
</div>
</div>

   <input type="submit" class="btn btn-primary col-md-2 col-md-offset-10" value="submit" />
    </form>

14.02.2018
  • Привет Стейси. Черт, это именно то, что мне нужно! Проблема на данный момент в том, что при нажатии переключателей ничего не происходит. Прошу прощения за глупые вопросы :( 14.02.2018
  • возможно консоль скрывает форму! Когда я нажимаю на входы, он выборочно скрывает/показывает материал — дайте мне знать, если это все еще не работает для вас! 14.02.2018
  • Хорошо, действительно глупый вопрос. Куда должна идти функция JQuery? Мне просто открыть ‹script› ‹/script› над формами? Я думаю, что это причина, почему это не работает для меня, ха! 14.02.2018
  • Он также был отредактирован выше, чтобы показать мой полный код, если эта помощь что-то объясняет. 14.02.2018
  • Эй, нет проблем, все должны с чего-то начинать, мы часто предполагаем, что все это знают! Вы используете их на HTML-странице? Если это так, вы можете либо прикрепить его как функцию ‹script›‹/script› в разделе ‹head›, но вам понадобится событие готовности тела — позвольте мне добавить это для вас, хорошо? 14.02.2018
  • Большое спасибо за помощь, Стейси. Я отредактировал свой код в исходном вопросе. Я, вероятно, просто поместил функцию/jquery не в то место. Не могли бы вы проверить это? Мне стыдно за то, как сильно ты мне помог, ты настоящая легенда ‹3 14.02.2018
  • Все еще не уверен, куда идет $('#contactType ›input’).change(function(){. Странно помещать его в ‹head›, когда там мой ‹title› и .css. Не знаю, куда он идет, и я' м уверен, что это проблема! 14.02.2018
  • Можете ли вы просто использовать файл index.js и связать его в своей голове? Использование встроенных функций всегда выглядит запутанно! Обычно я создаю папку /libs или папку /js и помещаю туда скрипты. Вы можете поставить перед закрытием тег ‹/body›, я думаю! 14.02.2018
  • Оказывается, перед HTML отсутствовал какой-то скрипт. --› ‹script src=ajax .googleapis.com/ajax/libs/jquery/2.1.1/›. Теперь все работает! Еще раз спасибо за вашу помощь, Стейси, всего наилучшего. 15.02.2018
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..