Jump to content
  • 0

checkbox lable


npofopr
 Share

Question

А как вы выделяете чекбокс по клику на текст?

<label><input name="namecheckbox" type="checkbox" value="" />хлеб, выпечка</label>

id и for использовать нельзя. А данное решение работает везде кроме IE-6.

Пробовал искать по форуму. Ничего не нашел. В интернетах пишут в основном про стилизацию, но не про клик.

Можете посоветовать какие нибудь js'ы?

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Во-первых, потрудитесь изъяснить на приемлемом языке свою задачу.

Во-вторых:

А данное решение работает везде кроме IE-6.

Что значит работает? И что же оно делает?

В-третьих, я так понял, что вам нужно:

некая ссылка стоит рядом с чекбоксом, если кликнуть по ней, то чекбокс станет отмеченым (cheked), так?

Link to comment
Share on other sites

  • 0

Да именно так, и по правилам именно так как написал топикстартер и надо писать. Очень странно, что это в ИЕ6 не работает, никогда бы не подумал...

Ну если id и for использовать нельзя (кстати, непонятно почему?), то надо юзать яваскрипт:

// что-то типа такого
<label onclick="if (this.firstChild.checked == false) {this.firstChild.checked = true;} else {this.firstChild.checked = false;}"><input name="namecheckbox" type="checkbox" value="" />хлеб, выпечка</label>

Link to comment
Share on other sites

  • 0
Да именно так, и по правилам именно так как написал топикстартер и надо писать. Очень странно, что это в ИЕ6 не работает, никогда бы не подумал...

В IE6 не работает именно если нет id и for, просто иерархии элементов ему недостаточно.

Правильное решение — использовать все-таки эти атрибуты, вместо того, чтобы имитировать поведение браузера JS-ом. Но если уж никак нельзя (хотя причины этого непонятны, любая серверная часть должна позволять генерировать идентификаторы динамически), то да, JS.

Link to comment
Share on other sites

  • 0

нашел еще вот это

label /* fast */
{
scrollbar-face-color : expression( runtimeStyle.scrollbarFaceColor = '#fff', (this['for'] == null && firstChild && runtimeStyle.behavior == '') ?
onclick = function () {
var input = this.getElementsByTagName('input')[0]
if (this.getElementsByTagName('input')[0])
{
try { input.click() || input.focus() }
catch (ex) {}
}
else if (this.getElementsByTagName('textarea')[0])
{
this.getElementsByTagName('textarea')[0].focus()
}
} : '' )
}
label /* attachEvent, Beta */
{
scrollbar-face-color : expression( runtimeStyle.scrollbarFaceColor = '#fff', (this['for'] == null && firstChild) ?
attachEvent('onclick', function () {
var input = event.srcElement.getElementsByTagName('input')[0]
if (input)
{
try { input.click() || input.focus() }
catch (ex) {}
}
else if (event.srcElement.getElementsByTagName('textarea')[0])
{
event.srcElement.getElementsByTagName('textarea')[0].focus()
}
}) : '' )
}

Правда, что на выходе - не знаю.

Link to comment
Share on other sites

  • 0
Во-первых, потрудитесь изъяснить на приемлемом языке свою задачу.

Во-вторых:

Что значит работает? И что же оно делает?

В-третьих, я так понял, что вам нужно:

некая ссылка стоит рядом с чекбоксом, если кликнуть по ней, то чекбокс станет отмеченым (cheked), так?

вот все поняли, кроме вас )

что тут объяснять то.

есть чекбокс есть текст рядом с ним. обычно кликают "целясь" на чекбокс, а можно кликать на текст выделяя тем самым чекбокс.

ведь все понятно:

<label><input name="namecheckbox" type="checkbox" value="" />хлеб</label>

или с айдишниками:

<input for="1" name="namecheckbox" type="checkbox" value="" /><label id="1">хлеб, выпечка</label>

/*

———————*/

а использовать айдишники и for не хочется, потому как слишком большая форма. слишком много инпутов.

программист устанет это все обрабатывать для БД.

Edited by npofopr
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy