Требуются * символы, жестко закодированные в HTML-код или добавленные динамически, используя back-end только для обязательных полей? [Дубликат]

Это сработало для меня.

просто помещено в onCreate metode

  Кнопка Button = (кнопка) findViewById (R.id.reload_btn);  button.setOnClickListener (новый View.OnClickListener () {public void onClick (View v) {web.loadUrl ("javascript: window.location.reload (true)");}});   

Это код, который может перезагрузить веб-сайт в webView

  web.loadUrl ("javascript: window.location.reload (true)")  ;   
82
задан brentonstrine 25 June 2012 в 22:33
поделиться

14 ответов

Хотя это принятый ответ, пожалуйста, игнорируйте меня и используйте синтаксис :after, предложенный ниже. Мое решение недоступно.


Аналогичный результат можно достичь, используя фоновое изображение изображения звездочки и установив фон метки / ввода / внешнего div и отступом размера изображения звездочки. Что-то вроде этого:

.required input {
   padding-right: 25px;
   background-image: url(...);
   background-position: right top;
}

Это поместит звездочку INSIDE в текстовое поле, но поместить то же самое на div.required вместо .required input, вероятно, будет больше того, что вы ищете, если немного менее изящный.

Этот метод не требует дополнительного ввода.

31
ответ дан jaypeagi 15 August 2018 в 21:43
поделиться
  • 1
    Стоит отметить, однако, что это не очень дружелюбный к чтению. Ответ Макса намного лучше в этом отношении. Фактически в большинстве случаев ответ Макса более идеален - просто не для OP. – jaypeagi 28 June 2013 в 11:57
  • 2
    Я подтвердил ваш ответ, потому что вы указали на синтаксис :after .. :-) – Rosdi Kasim 9 October 2015 в 08:08
.required label {
    font-weight: bold;
}
.required label:after {
    color: #e32;
    content: ' *';
    display:inline;
}

Исправить вашу точную структуру: http://jsfiddle.net/bQ859/

56
ответ дан laffuste 15 August 2018 в 21:43
поделиться

Это вы имели в виду?

http://jsfiddle.net/erqrN/1/

<div class="required">
    <label>Name:</label>
    <input type="text">
</div>

<style>
    .required:after { content:" *"; }
</style>​
146
ответ дан Max Girkens 15 August 2018 в 21:43
поделиться
  • 1
    Это хорошее решение во многих ситуациях, однако оно не работает, если для выравнивания форм используются абсолютное позиционирование или поплавки (например, jsfiddle.net/erqrN/2 ). Я фактически использую абсолютное позиционирование, чтобы выстроить свои формы. Я мог бы абсолютно позиционировать *, но это означало бы, что мне пришлось бы вручную установить расстояние для каждой длины ввода формы и не иметь никаких гибких входных данных. – brentonstrine 25 June 2012 в 23:11
  • 2
    @brentonstrine Коэффициенты: вы не должны использовать абсолютное позиционирование, чтобы выстраивать свои формы. Хотя обычно используется, абсолютное позиционирование не реагирует (если у вас нет JS-моддинга DOM при изменении размера), в то время как одни и те же эффекты всегда могут быть достигнуты с использованием статического или относительного положения, которое может быть отзывчивым в дизайне. Читатели, пожалуйста, избегайте использования таких стилей, как абсолютное позиционирование на таких элементах, как элементы формы, поскольку это довольно архаичный подход к позиционированию. Я знаю, что ваш комментарий был очень старым, но это для читателей. – WebWanderer 19 July 2016 в 20:08
  • 3
    Звездочка не появляется с помощью Lynx , что может быть проблемой доступности. – Dave Jarvis 16 November 2016 в 22:48
  • 4
    – Leonardo Maffei 25 August 2018 в 14:29
  • 5
    – Max Girkens 26 August 2018 в 07:08

Вставить его точно в INTO, как показано на следующем изображении:

enter image description here [/g0]

Я нашел следующий подход:

.asterisk_input:after {
content:" *"; 
color: #e32;
position: absolute; 
margin: 0px 0px 0px -20px; 
font-size: xx-large; 
padding: 0 5px 0 0; }


 <form>
    <div>              
        <input type="text" size="15" />                                 
        <span class="asterisk_input">  </span>            
    </div>            
</form> 

Сайт, на котором я работаю, закодирован с использованием фиксированного макета, так что это было нормально для меня.

Я не уверен, что это хорошо для жидкого дизайна.

20
ответ дан Tebe 15 August 2018 в 21:43
поделиться
  • 1
    Это в основном тот же подход, что и принятый ответ, не так ли? – brentonstrine 31 May 2014 в 02:32
  • 2
    да, это выглядит одинаково. Разница в том, что он использовал фоновое изображение. (или я что-то не понял) – Tebe 31 May 2014 в 03:07
  • 3
    О да, я вижу. Извините, что ваш ответ отличается. :) – brentonstrine 31 May 2014 в 08:14
  • 4
    добавление пустой разметки разметки для чего-то вроде этого побеждает весь смысл css, не так ли? – Jason Silver 20 June 2018 в 17:28
  • 5
    span ничего не стоит, это общий трюк для упрощения вещей, которые довольно часто встречаются среди огромного количества библиотек, которые я видел – Tebe 22 June 2018 в 14:14

Для тех, кто заканчивается здесь, но имеет jQuery:

// javascript / jQuery
$("label.required").append('<span class="red-star"> *</span>')

// css
.red-star { color: red; }
0
ответ дан Andy Hayden 15 August 2018 в 21:43
поделиться
  • 1
    Зачем использовать js, если вы можете добиться того же результата без js? – Vitaly Zdanevich 26 February 2016 в 13:04
  • 2
    @VitalyZdanevich, потому что вам нужно загрузить ненужное фоновое изображение с этим решением. Кроме того, у меня уже есть js (как и многие другие). – Andy Hayden 26 February 2016 в 18:40

Вы также можете использовать абсолютное позиционирование ...

http://jsfiddle.net/SpzTP/1/

.required {
  display: inline-block;
  position: relative;
}
.required label:after {
  content:"*";
  display: block;
  position: absolute;
  right: -.6em;
  top: 0;
}

В fiddle Я включаю возможность поместить «*» после ввода или после метки.

0
ответ дан Benjamin 15 August 2018 в 21:43
поделиться

Вы можете достичь желаемого результата, инкапсулируя HTML-код в тег div, который содержит «необходимый» класс, за которым следует класс «form-group». * однако это работает, только если у вас есть Bootstrap.

<div class="form-group required">
    <div class="required">
        <label>Name:</label>
        <input type="text">
    </div>
  <div>
0
ответ дан chateracks 15 August 2018 в 21:43
поделиться

Использовать jQuery и CSS

jQuery(document).ready(function() {
 jQuery("[required]").after("<span class='required'>*</span>");
});
.required {
    position: absolute;
    margin-left: -10px;
    color: #FB0000;
    font-size: 15px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" value="xxx" required>

5
ответ дан Falah 15 August 2018 в 21:43
поделиться

записать в CSS

.form-group.required .control-label:after {content:"*";color:red;}

и HTML

<div class="form-group required">

    <label class="control-label">Name:</label>

    <input type="text">

</div>
10
ответ дан Kondal 15 August 2018 в 21:43
поделиться
  • 1
    Я думаю, что ваш подход работает только в том случае, если вы назначаете класс label-метки в теге меток, например <label class="control-label">...</label>. Но это делает работу (Y) – shock-me 10 July 2018 в 09:39
input[required]{
    background-image: radial-gradient(#F00 15%, transparent 16%), radial-gradient(#F00 15%, transparent 16%);
    background-size: 1em 1em;
    background-position: right top;
    background-repeat: no-repeat;
}
6
ответ дан Krzysztof Trzos 15 August 2018 в 21:43
поделиться
  • 1
    почему на background-image есть два члена radial-gradient? Я не могу получить этот синтаксис, чтобы выйти замуж за developer.mozilla.org/en-US/docs/Web/CSS/radial-gradient , однако он работает правильно, когда я его пытаюсь. – Chris Walsh 17 May 2016 в 10:19
  • 2
    Это предпочтительнее, поскольку для его работы не требуется дополнительной разметки. Однако я хотел бы увидеть решение, которое использовало :: after для более настраиваемых параметров. – Jason Silver 20 June 2018 в 17:26

быстрый взломать для всех ярлыков

function showRequiredAsterisk() {
    $(':required').each(
        function(f){
            var lbl = $('label[for="'+this.id+'"]').first();
            if(lbl!=null){
                if(!lbl.text().includes('*')){
                    lbl.html(lbl.html() + '<span style="color:red"> * </span>');
                }
            }
        });
    return false;
}

$(document).ready(function () {
    showRequiredAsterisk();
});
0
ответ дан Rui Lima 15 August 2018 в 21:43
поделиться
input[required], select[required] {
    background-image: url('/img/star.png');
    background-repeat: no-repeat;
    background-position-x: right;
}

Изображение имеет пробел 20px справа, чтобы не накладываться с помощью стрелки выпадающего выделения

enter image description here [/g0]

И это выглядит так: enter image description here [/g1]

10
ответ дан Toolkit 15 August 2018 в 21:43
поделиться

Я думаю, что это эффективный способ сделать, почему так много головной боли

    <div class="full-row">
     <label for="email-id">Email Address<span style="color:red">*</span></label>
  <input type="email" id="email-id" name="email-id"  ng-model="user.email" >
    </div> 
3
ответ дан user2903536 15 August 2018 в 21:43
поделиться
  • 1
    Обратите внимание, что диапазон применяется к тегу метки, а не к тегу ввода. Если вы примените тег ввода, красная звездочка опустится до следующей строки - это не то, что большинство разработчиков захотят – MarcoZen 7 August 2017 в 05:56

.asterisc {
  display: block;
  color: red;
  margin: -19px 185px;
}
<input style="width:200px">
<span class="asterisc">*</span>

1
ответ дан Vitaly Zdanevich 15 August 2018 в 21:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: