2015-03-18 3 views
0

Я создаю эту веб-страницу, и я хочу изменить метку и маску ввода в зависимости от переключателя, выбранного пользователем.html radiobutton не будет запускать событие

Я прочитал все сообщения от людей с той же проблемой, как jQuery .focus() and .blur() not working in Chrome or Safari или http://juristr.com/blog/2008/06/attaching-client-side-event-handler-to/, но предлагаемые решения, похоже, не работают!

Вот JavaScript:

$(document).ready(function() { 

$("#cep").mask("99999-999"); 

$("#jur", "#fis").click(function() { 

     docProcess(this.value); 
    }); 

function docProcess(value) { 
    alert("hi"); 
    if (value == "jur") { 
     $("#docLabel").value = "CNPJ: "; 
     $("#docLabel").mask("99.999.999/9999-99"); 
    } else { 
     $("#docLabel").value = "CPF: "; 
     $("#docLabel").mask("999.999.999-80"); 
    } 
} 

}); 

и вот HTML:

<label for="clientType">Tipo de cliente: </label> 
<input class"radioButton" type="radio" name="clientType" id="jur"  value="jur" /> 
<label class="radioButton" for="clientType">Jurídico</label> 
<input class"radioButton" type="radio" name="clientType" id="fis" value="fis" /> 
<label class="radioButton" for="clientType">Físico</label> 
<label for="doc" id="docLabel">CNPJ: </label> 
<input type="text" id="doc" name="doc" /> 

Любая помощь?

+0

'$ (" # jur "," #fis ")' - это селектор контекста, он совпадает с '$ ('# fis'). Find ('# jur')'. Похоже, вы хотели сделать '$ (" # jur, #fis ")' вместо – adeneo

+0

ummm, не знали этого! ty –

+0

Кроме того, в jQuery это '$ (" # docLabel "). val (" CNPJ: ") ;, но метка не имеет значения, у него есть текст, поэтому он должен быть' $ ("# docLabel") .text ("CNPJ:"); ' – adeneo

ответ

0

Вместо того, чтобы писать $("#docLabel").value = "CNPJ: ";, напишите $("#docLabel").text("CNPJ: ");.

0

Несколько селекторов ограничены запятой в строке. Обновите селектор до $("#jur, #fis"), и он будет работать нормально.

Для получения дополнительной информации о нескольких отдельных заявлениях ссылки jQuery Multiple Selector

$(document).ready(function() { 
 

 
    //$("#cep").mask("99999-999"); 
 

 
    $("#jur, #fis").click(function() { 
 

 
    docProcess(this.value); 
 
    }); 
 

 
    function docProcess(value) { 
 
    alert("hi"); 
 
    if (value == "jur") { 
 
     $("#docLabel").value = "CNPJ: "; 
 
     //$("#docLabel").mask("99.999.999/9999-99"); 
 
    } else { 
 
     $("#docLabel").value = "CPF: "; 
 
     //$("#docLabel").mask("999.999.999-80"); 
 
    } 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<label for="clientType">Tipo de cliente:</label> 
 
<input class "radioButton" type="radio" name="clientType" id="jur" value="jur" /> 
 
<label class="radioButton" for="clientType">Jurídico</label> 
 
<input class "radioButton" type="radio" name="clientType" id="fis" value="fis" /> 
 
<label class="radioButton" for="clientType">Físico</label> 
 
<label for="doc" id="docLabel">CNPJ:</label> 
 
<input type="text" id="doc" name="doc" />

+0

ty! не имеют репутации для продвижения. моя вина. –

0

Спасибо всем, так что это было немного помощи от adeneo и Пьера! изменил доступ к $("#jur, #fis") и смену $("#docLabel").text("CNPJ: "), и он работал как шарм! ти!

+0

Добро пожаловать! –