Это - действительно хороший вопрос.
я думаю, что это является детальным, но определенно соответствующим:
Макросы не застревают в s-выражениях. Посмотрите макрос ЦИКЛА для очень сложного языка записанные ключевые слова использования (символы). Так, в то время как можно запустить и закончить цикл круглыми скобками, в нем имеет его собственный синтаксис.
Пример:
(loop for x from 0 below 100
when (even x)
collect x)
Однако самые простые макросы просто используют s-выражения. И Вы застряли бы с помощью них.
, Но s-выражения, как Sergio ответил, начните чувствовать себя хорошо. Синтаксис уходит с дороги, и Вы начинаете кодировать в синтаксическом дереве.
Что касается макросов читателя, да, Вы могли очевидно записать что-то вроде этого:
#R{
ruby.code.goes.here
}
, Но необходимо было бы записать собственный синтаксический анализатор синтаксиса Ruby.
можно также подражать некоторым конструкциям Ruby, как блоки, с макросами, которые компилируют в существующие конструкции Lisp.
#B(some lisp (code goes here))
перевел бы в [1 114]
(lambda () (some lisp (code goes here)))
, Видят эта страница для того, как сделать это.
Да, как сказал SLaks, CSS-селектора для этого нет. Я сомневаюсь, что это когда-либо будет в рамках CSS, потому что CSS нужно будет проверять содержимое ввода.
Ваш лучший вариант, тем не менее, вероятно, заключается в том, чтобы при нажатии кнопки вызывать функцию проверки JavaScript, а не отправлять форму. Затем проверьте [обязательные] поля для соответствующего контента и либо отправьте форму, либо выделите обязательные поля, которые не были заполнены.
В JQuery есть несколько хороших плагинов, которые позаботятся об этом за вас. http://docs.jquery.com/Plugins/validation
.